Jim*_*Jim 5 asp.net asp.net-mvc entity-framework
在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);
}
Run Code Online (Sandbox Code Playgroud)
如何防止编辑Id和Birthday?谢谢!
Dar*_*rov 11
您应该使用仅包含要编辑的属性的视图模型:
public class EditStudentViewModel
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后:
public ActionResult Edit(StudentViewModel student)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我不建议的另一种技术是从绑定中排除某些属性:
public ActionResult Edit([Bind(Exclude = "Id,Birthday")]Student student)
{
...
}
Run Code Online (Sandbox Code Playgroud)
或包括:
public ActionResult Edit([Bind(Include = "Name")]Student student)
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4921 次 |
| 最近记录: |