每个插入 .cshtml 页面都会出现相同的错误

Every insert .cshtml page get the same error

我的项目中有 4 个模型 classes。每个模型 class 都有一个插入页。在每个插入数据页上,我都会收到与 System.NullReferenceException 相同的错误。此错误显示在每个 @Html.EditorFor 属性中。

假设,我的插入数据页面(.cshtml 页面)中有 3 个输入属性,然后每个属性都显示与 System.NullReferenceException 相同的错误。我不明白为什么会这样?请看附图。我无法对此进行调试,因为错误显示在 .cshtml 页面中。请帮我解决这个错误。

当我在我的方法中实例化模型 class 并将其传递到视图页面时,它起作用了。但是现在我很想知道如果是这样那么为什么 Entity Framework 构建的方法不实例化模型 classes 并传递给查看页面。

public ActionResult Create()
{
    return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "UserId,UserName,Password,Department,LocalLvl,Status")] UserModel userModel)
{
    if (ModelState.IsValid)
    {
        db.UserModels.Add(userModel);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(userModel);
}

上述方法是由Entity Framework脚手架过程创建的,为什么不实例化模型class。之前,我的项目 运行 成功然后突然开始显示错误?请帮忙。

预计您已在页面顶部定义了 @model,该页面预计会接收该类型的对象。

@model YourProject.Models.LoginModel

并确保您已返回模型实例以传递给您的视图。否则,@model 将是 null

public ActionResult Login()
{
    // Implementation
    var model = new LoginModel();

    return View(model);
}

[HttpPost]
public ActionResult Login(LoginModel model)
{
    // Implementation

    return View(model);
}

参考资料

Strongly typed models and the @model directive