在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项被简单忽略了。
我看过许多生成自定义索引的解决方案(绑定到列表模型),但它们似乎都针对早期版本的MVC,并且大多数在我看来都有些“笨重”。
我是否遗漏了什么?
ModelState
功能。你在post操作中使用它了吗? - ps2goatDefaultModelBinder
生成和管理这些索引器? - avo<input type="hidden" name="@(ViewData.TemplateInfo.HtmlFieldPrefix.Substring(0, ViewData.TemplateInfo.HtmlFieldPrefix.LastIndexOf("["))).Index" value="@ViewData.TemplateInfo.HtmlFieldPrefix.Split("[]".ToCharArray, StringSplitOptions.RemoveEmptyEntries).Last" />
- apc