Я пытаюсь создать форму, которая позволяет редактировать несколько строк данных.У меня нет проблем с циклическим просмотром и получением полей ввода для рендеринга ... Я просто не могу заставить атрибуты имени выводить правильно.
Я знаю, что для отправки коллекции вам нужно отправить обратно индексированное имя, гдеИндекс является последовательным, начиная с 0.
<input name="Books[0].Title" />
<input name="Books[1].Title" />
and so on...
Теперь я могу заставить функцию EditorFor вывести свое собственное имя, используя следующий код цикла
@For n = 0 To (Model.Books.Count - 1)
@Html.EditorFor(Function(m) Model.Books.Item(n).Title)
Next
, давая мне
<input name="Books[0].Title" />
<input name="Books[1].Title" />
and so on...
Моя проблема заключается в том, что VS показывает следующее предупреждение
Использование переменной итерации в лямбда-выражении может привести к неожиданным результатам.Вместо этого создайте локальную переменную внутри цикла и присвойте ей значение переменной итерации.
Тем не менее, когда я изменяю цикл на
@For n = 0 To (Model.Books.Count - 1)
Dim item = Mode.Books.Item(n)
@Html.EditorFor(Function(m) item.Title)
Next
, я получаю
<input name="$VB$Local_item.Title" />
<input name="$VB$Local_item.Title" />
and so on...
Есть мысли?Должен ли я просто игнорировать предупреждение?
Спасибо.