如何在HttpPost请求mvc 3后填写IEnumerable <t>?</t>

时间:2012-08-01 07:43:59

标签: c# .net asp.net-mvc asp.net-mvc-3

我想使用下面的代码创建一个表单我开发了Model for View:

1 个答案:

答案 0 :(得分:2)

请阅读以下博文,以便更好地了解模型绑定如何适用于集合以及如何命名输入字段:http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

好的,现在让我们摆脱这个foreach循环并使用编辑器模板,是吗?

<table style="width:65%; vertical-align:top" id="sample">
    <%= Html.EditorFor(x => x.Properties) %>
</table>

现在定义一个编辑器模板,该模板将自动为属性集合的每个元素(~/Views/Shared/EditorTemplates/PropertyModel.ascx)呈现:

<%@ Control 
    Language="C#" 
    AutoEventWireup="true" 
    Inherits="System.Web.Mvc.ViewUserControl<PropertyModel>" 
%>
<tr>
    <td>
        <%= Html.LabelFor(x => x.ParameterName) %>
    </td>
    <td>:</td>
    <td>
        <%= Html.TextBoxFor(x => x.ParameterName) %>
    </td>
</tr>

就这些单选按钮而言,你的设计中存在一些错误。它们不是集合模型的一部分,而是主视图模型的一部分,但您将它们放在为集合属性的每个元素呈现的foreach循环中。您可能需要重新考虑您在此处尝试做的事情。