我有一个包含可变长度文本框列表的表单,使用类似于此的模板呈现..
@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重新索引所有内容。
谢谢!
答案 0 :(得分:5)
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx