如果视图不包含记录 ID,如何让用户更新记录?



我是Web开发的初学者,我正在尝试使用 ASP.NET Core制作我的第一个基本网站。我正在尝试实现一个非常基本的东西,但我不确定该怎么做。

我有两种控制器操作方法:LoadBlogPost 和 SaveBlogPost。LoadBlogPost 返回一个包含现有博客文章模型的视图,SaveBlogPost 会在数据库中更新它。

这个问题是,为了更新数据库中的记录,我需要记录 ID。但是 SaveBlogPost 收到的模型不包含 ID,因为 ID 不是视图的一部分。我发现我可以通过将 ID 添加到视图中来解决此问题。但是我不想那样做。

Web开发人员通常如何处理这个问题?如何使 SaveBlogPost 方法知道它收到的模型的 ID,而不将其包含在 HTML 视图中?

HTTP 是一个状态协议。 如果您尝试保存现有项目,则您的视图模型需要返回一个 ID,该 ID 需要在表单发布时提交。

你确实发送了 ID,但你只是不显示它。

在更新的.cshtml页面中,您必须使用input hidden

<form method="post" asp-action="Update">
<!--Id will be passed to action for updating-->
<input asp-for="Id" hidden />

然后,您可以在操作中使用此 ID。

最新更新