У меня есть List<Task>
в моей модели. Этот список содержит 2 задачи (скажем) в нем
public List<Task> Tasks { get; set; }
public class Task {
public Task()
{
Title="";
Total= 0;
}
public string Title{ get; set; }
public int Total{ get; set; }
}
Теперь в моем виде бритвы я хочу сделать 2 текстовых поля для каждого из Tasks
в List<Tasks>
моей модели.
Я не зацикливался, просто поместил прямые текстовые поля, такие как:
@Html.TextBoxFor(m => m.Tasks[0].Title, new { @maxlength = "50"})
@Html.TextBoxFor(m => m.Tasks[0].Total, new { @maxlength = "2"})
<br>
@Html.TextBoxFor(m => m.Tasks[1].Title, new { @maxlength = "50"})
@Html.TextBoxFor(m => m.Tasks[1].Total, new { @maxlength = "2"})
Это прекрасно обрабатывает форму, но нажатие кнопки «Отправить» ничего не делает в FF.
Однако в IE9 все нормально.
Просмотр источника показывает этот HTML, сгенерированный следующим образом:
<input id="Tasks_0__Title" maxlength="50" name="Tasks[0].Title" type="text" value="" />
<input data-val="true" data-val-number="The field Total must be a number." data-val-required="The Total field is required." id="Tasks_0__Total" maxlength="2" name="Tasks[0].Total" type="text" value="" />
Этот HTML-код выглядит неправильно. У него name="Tasks[0].Total"
, что кажется странным.
Как мне сделать это, чтобы я мог получить доступ к значениям текстового поля из List<>
в моем контроллере после публикации?
Спасибо
EDIT:
Я просто оставил один ряд для теста. Это HTML, который я вижу в FF.
<input id="Tasks_0__Title" type="text" value="" name="Tasks[0].Title" maxlength="50">
<input id="Tasks_0__Total" type="text" value="" name="Tasks[0].Total" maxlength="2" data-val-required="The Total field is required." data-val-number="The field Total must be a number." data-val="true">
Это сообщение не публикуется, когда я нажимаю кнопку отправки.
Теперь, если я изменюсь name="Tasks[0].Title" to name="Tasks_0__Title" and name="Tasks_0__Total"
в FIREBUG это хорошо.
Если я удаляю имя полностью, оно также публикуется нормально в FF