【发布时间】:2021-04-12 18:09:01
【问题描述】:
我正在尝试为 IEnumerable 的模型中的每个模型创建一个编辑表单。基本上,我的 Index.cshtml 页面有一个包含数据库表中每个对象的表,我想为每个模型添加一个编辑表单。但是,无论出于何种原因,每当我发布一个单独的表单时,数据都会作为 NULL 传递。
这是我所拥有的:
型号:
public partial class Person
{
public int id { get; set; }
public string name { get; set; }
}
控制器:
public async Task<IActionResult> Index()
{
return View(await _context.ASNGFellows.ToListAsync());
}
public async Task<IActionResult> Edit(Person person)
{
if (ModelState.IsValid)
{
#update database object
}
return View(Person)
}
查看(Index.cshtml):
@model IEnumerable<Person>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.name)
</th>
<th class="actionItemsTh">Actions</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
<a href="#" class="edit">Edit</a>
</td>
</tr>
<tr>
<td colspan="5">
<div>
<form method="post" asp-action="Edit">
@Html.AntiForgeryToken()
@Html.HiddenFor(modelItem => item.id)
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(modelItem => item.name)
@Html.EditorFor(modelItem => item.name)
@Html.ValidationMessageFor(modelItem => item.name)
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</td>
</tr>
}
</tbody>
</table>
表单生成正确,当我提交时,它会点击控制器方法,但是 person 对象具有空值。我在这里做错了什么?
【问题讨论】:
标签: asp.net-mvc asp.net-core-mvc