小编典典

MVC 4列表模型绑定如何工作?

c#

如果我想将一组形式的输入绑定到ListMVC 4中的,我知道下面的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行,我想知道是否需要对所有后续输入进行重新编号。


阅读 248

收藏
2020-05-19

共1个答案

小编典典

有用于集合的特定电汇格式。这在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/

2020-05-19