如何在ASP.NET MVC中保留/保护Edit中的某些字段
发布时间:2020-12-15 23:57:29 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET MVC的“编辑”操作中,可以使用HiddenFieldFor向用户隐藏某些字段.但是,这不会保护字段(例如ID,数据创建日期)不被编辑. 例如,模型学生具有字段ID,名称和生日.我想允许用户更新名称,但不是ID或生日. 对于像这样的编辑动作 public ActionResult Edit(
在ASP.NET MVC的“编辑”操作中,可以使用HiddenFieldFor向用户隐藏某些字段.但是,这不会保护字段(例如ID,数据创建日期)不被编辑.
例如,模型学生具有字段ID,名称和生日.我想允许用户更新名称,但不是ID或生日. 对于像这样的编辑动作 public ActionResult Edit(Student student) { if (ModelState.IsValid) { db.Entry(student).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(student); } 如何防止编辑Id和Birthday?谢谢! 解决方法
您应该使用仅包含要编辑的属性的视图模型:
public class EditStudentViewModel { public string Name { get; set; } } 接着: public ActionResult Edit(StudentViewModel student) { ... } 我不建议的另一种技术是从绑定中排除某些属性: public ActionResult Edit([Bind(Exclude = "Id,Birthday")]Student student) { ... } 或包括: public ActionResult Edit([Bind(Include = "Name")]Student student) { ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为什么我们使用ViewModels?
- asp.net – html中的视频标签
- ASP.NET – Response.Redirect不填充URL引用
- .NetCore技术研究-EntityFramework Core 3.0 Preview
- asp.net-mvc – 如何向ASP.NET MVC2控制器发送包含冒号的GE
- asp.net-mvc – 在ASP.NET MVC中调用Session_End()的时间是
- asp.net – 如何在迭代字典项时更新值?
- Azure Apps EasyAuth声称使用.NET Core
- asp.net-mvc – 如何在ASP.NET MVC中测试动作过滤器?
- asp.net – 如何填充asp:DropDown客户端?
推荐文章
站长推荐
- asp.net-mvc – EF代码首先采用模块化设计
- asp.net-mvc-3 – 使用自定义VirtualPathProvide
- asp.net-mvc – 如何将HTML5表单操作链接到ASP.N
- asp.net – 无法加载文件或程序集…数组下标超出
- asp.net – 将下一个/上一年的按钮添加到asp日历
- asp.net – NodaTime转换(第2部分).如何?
- asp.net – ASP MVC – 扭转一个foreach
- asp.net-mvc – JsonSerializer – 使用’N2’格
- VisualStudio中解决方案
- asp.net-mvc – 无法让defaultRedirect工作
热点阅读