修改功能每个网站里都有,也有很多写法
写法1:要修改的字段刚好等于表中的字段
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(admin model) { if (ModelState.IsValid) { adminBLL bll = new adminBLL(); bll.Update(model); return RedirectToAction("Index"); } return View(model); }
写法2:只修改部分字段(表中有十几个字段)
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(admin vmodel) { if (ModelState.IsValid) { adminBLL bll = new adminBLL(); admin model = bll.Find(vmodel.ID); model.name = vmodel.name; model.password = vmodel.password; bll.Update(model); return RedirectToAction("Index"); } return View(vmodel); }
//如果要修改的字段多是话这些就很麻烦
写法3:TryUpdateModel
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(int id, FormCollection FromValue) { adminBLL bll = new adminBLL(); admin model = bll.Find(id); if (TryUpdateModel(model, FromValue.AllKeys) && ModelState.IsValid) { bll.Update(model); return RedirectToAction("Index"); } return View(); }
TryUpdateModel (model)默认将view页面上form表单中的字段与model字段匹配,如果相同则把表单中的值更新到model上
利用 FormCollection 来接收 View 传来的资料来做字段更新,所以可以改成以下写法:
TryUpdateModel(model, FromValue.AllKeys) && ModelState.IsValid
还可以排除 FormCollection 来接收 View 传来的资料的某些字段
TryUpdateModel(model, "", FromValue.AllKeys, new string[] { "字段1" })
这样就可以排除“字段1”
本文介绍了在ASP.NET MVC中实现修改功能的三种常见方法,包括直接修改模型、部分字段更新及使用TryUpdateModel简化操作。通过具体代码示例,展示了如何在不同场景下灵活运用这些方法。
521

被折叠的 条评论
为什么被折叠?



