微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – 缺少元素时的MVC/Razor模型绑定集合

我有一个包含可变长度文本框列表的表单,使用类似于此的模板呈现.

@Html.TextBox("items[" + itemIndex + "].Title",someValue)

所以最终呈现的HTML看起来像这样……

<input id="items_0__Amount" type="text" value="Apple" name="items[0].Title">
<input id="items_1__Amount" type="text" value="Banana" name="items[1].Title">
<input id="items_2__Amount" type="text" value="Orange" name="items[2].Title">

在表单提交上,这很好地绑定到我的模型.但是,我有一个删除按钮,使用Javascript从表单中删除一行或多行.问题是,如果你删除说中间行,HTML看起来像这样……

<input id="items_0__Amount" type="text" value="Apple" name="items[0].Title">
<input id="items_2__Amount" type="text" value="Orange" name="items[2].Title">

…而且索引不再是连续的.这似乎混淆了MVC和我的模型绑定器只传递了第一行,而不是最后一行.我做错了什么,或者如果列表中的索引不连续,MVC是否会失败?这个问题的最佳解决方案是什么?

我希望尽可能避免使用JS重新索引所有内容.

谢谢!

解决方法

菲尔·哈克(Phil Haack)在不久前发表过与此类似的内容,虽然我不确定它是否仍然与MVC 3相关.该帖子包含了针对非顺序索引问题的解决方法

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐