Использование атрибута «disabled» на входах в форме не публикует их, что ожидается и желательно Однако, если вы подготовите форму из 3 объектов в списке, отключите первый и третий и отправите, второй объект появится в заголовке сообщения, но не будет правильно привязан к списку, поскольку у него есть индекс [1] вместо [0].
Я понимаю, как работает привязка модели и почему она не связывает опубликованный объект, который я хочу, но я не знаю, как еще описать проблему, чтобы получить конкретные результаты, которые привели бы меня к моему решению. Все, что я ищу, приводит к основным постам и обязательным примерам.
Список внутри модели, которую я использую:
public IList<_Result> Results { get; set; }
Класс _Result имеет одно из свойств:
public string Value { get; set; }
Я заполняю список и использую его так:
@for (int i = 0; i < Model.Results.Count; i++)
{
...
<td>
<input asp-for="Results[i].Value" disabled />
</td>
...
}
У меня есть флажки в форме, которые убирают (с помощью javascript) атрибут «disabled» из входных данных и, таким образом, позволяют их публиковать.
Когда я заполняю указанный список 3 объектами _Result, они отображаются в форме и все имеют атрибут «disabled». Если я удаляю атрибут «disabled» из первых двух объектов и нажимаю кнопку «Отправить», я получаю список результатов с первыми двумя объектами _Result, что соответствует ожиданиям.
Однако, если я удаляю атрибут «disabled» только из второго объекта _Result (первый объект _Result по-прежнему имеет атрибут «disabled»), список результатов возвращается пустым в моем методе Controller.
В моем заголовке данных формы я вижу следующее: «Results [1]. Значение: значение, которое я хочу опубликовать», что означает, что публикация происходит, но список не связывает объект из-за индекса.
Есть идеи о том, как я могу добиться этого правильного связывания? Кроме того, причина, по которой я использую атрибут «disabled», заключается в том, что я показываю много результатов на одной странице и хочу публиковать только те, которые выбраны.