2011-08-30 72 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上下文)。