【发布时间】:2015-05-31 19:18:11
【问题描述】:
在我的创建视图中,我想让用户创建一个对象列表(相同类型)。因此,我在视图中创建了一个表格,包括每行中的每个输入字段。各个“可创建”对象的行数是固定的。
假设有一个类 Book 包括两个属性 title 和 author 并且用户应该能够两个创建 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 为空,它不起作用,我不知道如何将所有创建的对象放入此列表中。
如果您有任何建议,我将非常感谢。
【问题讨论】:
标签: c# asp.net entity-framework asp.net-mvc-4