Мне нужно передать список, основанный на пользовательском вводе, из моего представления в контроллер. Я создал таблицу с помощью javascript, используя скрытый ввод в каждой строке, увеличивая индекс в атрибутах id и name по мере добавления пользователем в список. Проблема в том, что я не могу понять, как уменьшить индекс каждого идентификатора и имени, если пользователь решает удалить элемент. Я плохо разбираюсь в javascript ... Надеюсь, вы понимаете мое объяснение.
Это моя таблица.
<table id = "cat-table" class = "table table-responsive">
<thead>
<tr>
<th>Num Control</th>
<th>Usuario</th>
<th></th>
</tr>
</thead>
<tbody id = "tbody">
</tbody>
</table>
Вот как я печатаю каждую строку.
$("#tbody").append("<tr id='filaUsuario" + usuario.id + "' ><td><input name='Usuario[" + i + "].UsuarioId' type='hidden' id='Usuario[" + i + "].UsuarioId' type='hidden' value='" + usuario.id + "' />" + usuario.id + "</td><td>" + usuario.name + "</td><td> <button type='button' class='btn btn-default' name = 'btn-Quitar' id = 'btn-Quitar' onclick= eliminar('" + i + "','"+ usuario.id +"') value='" + i + "'>Quitar</button></td></tr>");
И вот как я пытаюсь уменьшить оставшиеся элементы
function eliminar(valor, usuario) {
//$("#filaUsuario" + usuario).remove();
$("#tbody tr").find("td:first").find("input").removeAttr("id");
$("#tbody tr").find("td:first").find("input").attr("id", "Usuario['"+
--i +"'].UsuarioId");
}
id не имеет значения и должен быть удален. Если вы хотите динамически добавлять и удалять элементы, обратитесь к Отправить в контроллер данные одного и того же частичного представления, вызываемого несколько раз? (а для подробной реализации с использованием BeginCollectionItem см. Частичное представление, передающее коллекцию с помощью помощника Html.BeginCollectionItem)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Зачем менять id? Как узнать, какие данные вводятся пользователем, когда идентификатор меняется каждый раз? Почему бы просто не сохранить все элементы списка в массиве и установить новый идентификатор равным длине массива? Тогда вы можете оставить все идентификаторы одинаковыми, и удаление строки станет тривиальным.