ASP.NET MVC 强类型实现修改功能教程
在 ASP.NET MVC 中,可以使用强类型实现修改功能。以下是实现修改功能的步骤:
-
创建一个用于编辑实体的视图。可以使用 Razor 视图引擎创建一个具有表单的视图,表单中包含要修改的实体的属性。例如,可以创建一个名为'Edit.cshtml'的视图。
-
在控制器中创建一个用于接收修改后的实体数据的动作方法。该方法应该接收一个参数,该参数是要修改的实体的类型。例如,可以创建一个名为'Edit'的动作方法。
[HttpGet]
public ActionResult Edit(int id)
{
// 根据id获取要修改的实体
var entity = db.Entities.Find(id);
// 将实体传递给视图
return View(entity);
}
[HttpPost]
public ActionResult Edit(Entity entity)
{
if (ModelState.IsValid)
{
// 更新实体
db.Entry(entity).State = EntityState.Modified;
db.SaveChanges();
// 重定向到列表页面或详情页面
return RedirectToAction("Index");
}
// 如果模型验证失败,返回视图并显示错误消息
return View(entity);
}
- 在视图中使用 HtmlHelper 方法生成表单,并将要修改的实体作为参数传递给表单。
@model YourNamespace.Entity
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-group">
@Html.LabelFor(model => model.Property1, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Property1, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Property1, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Property2, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Property2, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Property2, "", new { @class = "text-danger" })
</div>
</div>
<!-- 添加其他属性的表单控件 -->
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="保存" class="btn btn-default" />
</div>
</div>
}
通过以上步骤,就可以使用强类型实现修改功能。当用户提交表单时,控制器中的动作方法将接收到修改后的实体数据,并将其保存到数据库中。
原文地址: https://www.cveoy.top/t/topic/fwau 著作权归作者所有。请勿转载和采集!