У меня есть форма, которая содержит список текстовых полей переменной длины, отображаемых с использованием шаблона, подобного этому.
@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 для повторной индексации всего, если это возможно.
Спасибо!