Поскольку вы используете представление Razor, вы можете использовать строго типизированные @Html.TextBoxFor()
помощники и использовать цикл for
для создания нескольких текстовых полей внутри books
списка:
@model Applicants.Models.Data
@using (Html.BeginForm())
{
@Html.TextBoxFor(model => model.name)
@Html.TextBoxFor(model => model.age)
@for (int i = 0; i < Model.books.Count; i++)
{
@Html.TextBoxFor(model => model.books[i].Title)
@Html.TextBoxFor(model => model.books[i].Author)
}
@* don't forget to add submit button here *@
}
Цикл произведет<input>
элементов, подобных приведенному ниже примеру, предполагается, что у вас есть действие POST, в котором в качестве параметра viewmodel указано Applicants.Models.Data
:
<input name="books[0].Title" type="text" value="sometitle">
<input name="books[0].Author" type="text" value="somevalue">
<input name="books[1].Title" type="text" value="sometitle">
<input name="books[1].Author" type="text" value="somevalue">
<!-- other input elements depending on books list count -->
См. эту скрипку для рабочего примера.