加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在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)
{
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读