в моем представлении создать Я хочу дать пользователю возможность создать список объектов (одного типа). Поэтому я создал таблицу в представлении, включающую каждое поле ввода в каждой строке. Количество строк, соответствующих «создаваемым» объектам, является фиксированным числом.Создайте несколько объектов одного и того же типа в одном и том же виде
Допустим, есть классная книга, включающая в себя два титула собственности и автора, и пользователь должен иметь возможность создавать 10 или менее книг.
Как я могу это сделать?
Я не знаю, как передать список объектов (которые привязаны) к контроллеру. Я пробовал:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ICollection<Book> bookList)
{
if (ModelState.IsValid)
{
foreach(var item in bookList)
db.Books.Add(item);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(articlediscounts);
}
И по мнению это:
<fieldset>
<legend>Book</legend>
<table id="tableBooks" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Title</th>
<th>Author</th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < 10 ;i++)
{
<tr>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
</td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.Author)
@Html.ValidationMessageFor(model => model.Author)
</div>
</td>
</tr>
}
</tbody>
</table>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
Как Booklist имеет нулевое значение, он не работает, и я не знаю, как поставить все созданные объекты в этом списке.
Если у вас есть предложения, я был бы очень благодарен.
«Что позволяет отправлять только одну книгу» не является правильным. Модель просмотра GET не должна соответствовать модели POST. Параметры post action привязаны на основе полей в форме, а не '@ model 'представления. –
@ freedomn-m, Посмотрите на код в представлении OP - они создают ввод с именем 'name =" title "и одним вводом с именем' name = "Author", который будет возвращаться к одному объекту 'Book'! –
«@model yourAssembly.Book .., который позволяет отправлять только одну книгу» - ваше заявление только о публикации одной книги относится к '@ model', а не к именам ввода. Остальная часть сообщения с 'm [i] .Title' и т. Д. Хороша, просто эта часть. –