非顺序集合绑定

Dis*_*ile 7 c# asp.net-mvc asp.net-mvc-4

将MVC视图中动态创建的元素集合绑定到MVC 4中的集合的最佳方法是什么.我知道以前的版本要求元素如下所示:

<input name="Categories[0].CategoryID" type="hidden" value="123" />
<input name="Categories[0].CategoryName" type="hidden" value="Music" />
<input name="Categories[1].CategoryID" type="hidden" value="456" />
<input name="Categories[1].CategoryName" type="hidden" value="Movies" />
Run Code Online (Sandbox Code Playgroud)

但是当你动态添加新元素并删除它们时,事情很快就会失序.

MVC 4是否添加了绑定到非顺序集合的方法?

nem*_*esv 14

从MVC2开始支持非顺序集合索引,您只需要一个单独的隐藏字段,该字段将使用name模式保存索引CollectionName.Index:

例如:

<input type="hidden" name="Categories.Index" value="3" />
<input name="Categories[3].CategoryID" type="hidden" value="123" />
<input name="Categories[3].CategoryName" type="hidden" value="Music" />

<input type="hidden" name="Categories.Index" value="1" />
<input name="Categories[1].CategoryID" type="hidden" value="456" />
<input name="Categories[1].CategoryName" type="hidden" value="Movies" />
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关此主题的更多信息:模型绑定到列表