asp.net-mvc-3 – MVC3非顺序索引和DefaultModelBinder

是否真的MVC 3.0中的默认模型绑定器能够处理非顺序索引(对于简单和复杂的模型类型)?我遇到了建议它应该的帖子,但是在我的测试中,它似乎并没有。

给定后回值:

items[0].Id = 10
items[0].Name = "Some Item"
items[1].Id = 3
items[1].Name = "Some Item"
items[4].Id = 6
items[4].Name = "Some Item"

和控制器方法:

public ActionResult(IList<MyItem> items) { ... }

仅加载的值为项0和1;项目4被简单地忽略。

我已经看到了许多解决方案来生成自定义索引(Model Binding to a List),但是他们都看起来针对以前版本的MVC,并且大多数是有点’重型’IMO。

我缺少什么?

解决方法

我有这个工作,你必须记住添加一个常见的索引隐藏输入,如解释在您参考的文章:

name = Items.Index的隐藏输入是关键部分

<input type="hidden" name="Items.Index" value="0" />
<input type="text" name="Items[0].Name" value="someValue1" />

<input type="hidden" name="Items.Index" value="1" />
<input type="text" name="Items[1].Name" value="someValue2" />

<input type="hidden" name="Items.Index" value="3" />
<input type="text" name="Items[3].Name" value="someValue3" />

<input type="hidden" name="Items.Index" value="4" />
<input type="text" name="Items[4].Name" value="someValue4" />

希望这可以帮助

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...