我希望用户一次更新多行,所以我创建了一个这样的表单(我删除了HTML以显示我的意思):
@using(Html.BeginForm()) {
@{int i = 0; }
@foreach(var row in Model) {
@Html.TextBox("Customer["+ i +"].CustomerID")
@Html.TextBox("Customer["+ i +"].Name")
}
<input type="submit" />
}
HTML中的输出是(3行):
<input type="text" name="Customer[0].CustomerID" />
<input type="text" name="Customer[0].Name" />
<input type="text" name="Customer[1].CustomerID" />
<input type="text" name="Customer[1].Name" />
<input type="text" name="Customer[2].CustomerID" />
<input type="text" name="Customer[2].Name" />
当用户单击提交按钮时,数据将发送到Controller:
Public ActionResult EditCustomer(IEnumerable<Customer> Customer) {
}
这给了我一个很好的IEnumerable所有输入的数据,我可以做任何我想做的事情。它按预期工作。
现在我想更进一步,让用户删除行。
此操作失败
因为当我删除第二行时,数组不再“关闭”:它从Customer [0]转到Customer [2],ASP.NET MVC也有问题。
所以我认为可以通过重新计算索引来解决。但是我如何在jQuery中执行此操作?
因此,在删除中间行之后,会运行一个将Customer[2].CustomerID
更新为Customer[1].CustomerID
的函数。