如何在ASP.NET MVC中保留/保护Edit中的某些字段

前端之家收集整理的这篇文章主要介绍了如何在ASP.NET MVC中保留/保护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?谢谢!

解决方法

@H_301_13@ 您应该使用仅包含要编辑的属性的视图模型:
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相关文章