如何使用最新的ASP.NET Core 2.2技术处理详细信息页面中的ID?
如果我将隐藏字段与ID一起使用,则当我单击“保存”时,它将被传递。 但是当我发表评论时,我不会得到ID。
<form asp-controller="Coach" asp-action="UpdateCoach" method="post">
@*<input asp-for="Coach.Id" type="hidden" />*@
<table class="table table-bordered table-condensed">
<tr>
<td>Naam:</td>
<td><input asp-for="Coach.CoachName" value="@Model.Coach.CoachName" /></td>
</tr>
<tr>
<td>Type coach:</td>
<td>
<select asp-for="Coach.CoachTypeId" asp-items="@(new SelectList(Model.CoachTypes,"Id", "CoachTypeDescription"))">
<option></option>
</select>
</td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input asp-for="Coach.CoachPhone" value="@Model.Coach.CoachPhone" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input asp-for="Coach.CoachEmail" value="@Model.Coach.CoachEmail" /></td>
</tr>
</table>
<input type="submit" value="Opslagen" class="btn btn-default" />
这是我的控制器:
[HttpPost]
public async Task<IActionResult> UpdateCoach(CoachViewModel coachViewModel)
{
return Redirect("/Coach/Coach");
}
在coachViewModel中,我得到的所有值都期望ID!
答案 0 :(得分:0)
您如何处理详细信息页面中的ID
假设这是数据库中已经存在的实体的“编辑”页面,那么您的选择包括:
POST
中。GET /users/{userId}
和PSOT /users/{userId}
或GET /users?userId={userId}
和POST /users?userId={userId}
User
的安全性Claim
或处于会话状态的某项内容),则使用该值。如果这是一个页面,用于为尚不存在的新实体定义数据(假设您使用的是IDENTITY
/ AUTO_INCREMENT
),那么没关系,因为您将无论如何都要进行INSERT
操作,并且无论如何您都应该为此操作使用一个单独的URI路径(和Controller Action)(即,在这种情况下,您的代码既不需要也不需要任何实体标识符)。