非顺序集合绑定

时间:2012-09-05 18:00:38

标签: 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" />

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

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

1 个答案:

答案 0 :(得分:13)

自MVC2以来支持非顺序集合索引您只需要一个单独的隐藏字段,该字段将使用name架构保存索引:CollectionName.Index

E.g:

<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" />

您可以在此处找到有关此主题的更多信息:Model Binding To A List