2011-08-30 74 views
2

返回數組我有視圖模型:如何從視圖asp.net-MVC-3

Customer 
    { 
     public string Name { get; set; } 
     ... 
     public IEnumerable<string> Emails { get; set; } 
    } 

我已經郵遞視圖:

... 
    @foreach (var Emails in Model.Emails) 
    { 
     @Html.EditorFor(modelItem => Emails) 
    } 
    ... 

我怎樣才能返回控制器這個電子郵件的數組?

當我從表單返回數據到控制器在這一刻,屬性「Customer.Emails」等於null,但它應該包含一個電子郵件數組。

+0

我按照您的要求刪除了我的答案,但我仍然認爲這是正確的。我會測試它,並在有空時更新 – Zruty

+0

取消刪除您的問題我將其標記爲答案,這是我的錯。我簡化了我的觀點和模型以便於理解。在這種情況下,它的工作原理!在我真正的計劃中,我會考慮如何應用它。謝謝你的回答。 –

+0

我想你需要查看ASP.NET MVC3的編輯模板:http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/ – Zruty

回答

3

EditorFor()呼叫不正確。

您應該刪除foreach

... 
@Html.EditorFor(modelItem => modelItem.Emails) 
... 
+0

modelItem.Emails - 它是一個數組。我試圖把它,但它也投了陣列與每個編輯中的所有成員字符串。 –

2

你要做

for (var i = 0; i < Model.Emails.Count; i++) { 
    @Html.EditorFor(m => m.Emails[i]); 
} 

否則將無法生成模型綁定正確的ID(如你不給任何EditorFor上下文)。