如果我想将一组形式的输入绑定到ListMVC 4中的,我知道下面的input name属性命名约定将起作用:
List
input
name
<input name="[0].Id" type="text" /> <input name="[1].Id" type="text" /> <input name="[2].Id" type="text" />
但我对模型绑定程序的宽容程度感到好奇。例如,以下内容如何:
<input name="[0].Id" type="text" /> <input name="[3].Id" type="text" /> <input name="[8].Id" type="text" />
模型绑定器将如何处理?它将绑定到List长度为9且为空的a吗?还是仍然绑定到List长度为3的a?还是会完全窒息?
我为什么在乎
我想实现一个动态表格,用户可以在其中向表格添加行,也可以从表格中删除行。因此,如果用户删除了总共8行中的第2行,我想知道是否需要对所有后续输入进行重新编号。
有用于集合的特定电汇格式。这在Scott Hanselman的博客中进行了讨论:
http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx
Phil Haack的另一篇博客文章在这里讨论了这一点:
http://haacked.com/archive/2008/10/23/model-binding-to-a- list.aspx
最后,一个博客条目完全可以满足您的要求:
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list- aspnet-mvc-2-style/