我想使用下面的代码创建一个表单我开发了Model for View:
答案 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循环中。您可能需要重新考虑您在此处尝试做的事情。