MVC Model is null

本文关键字:null is Model MVC | 更新日期: 2023-09-27 18:28:34

使用MVC框架,我得到了一个简单的问题。

@model mvc_test.Models.HomeModel
@{
    ViewBag.Title = "Index";
}
<li>@Model.OutputEmail</li>//Error NullReferenceException
@Html.LabelFor(x => x.OutputEmail, new { @class = "Label"})
@Html.TextBoxFor(x => x.OutputEmail)
@Html.ValidationMessageFor(x => x.OutputEmail)

所以我的想法是Linq表达式(x=>…)总是创建类的一个新实例。所以我需要通过我的观点来传递模型,或者有更好的解决方案。因为我可以通过linq表达式访问模型。

MVC Model is null

此代码:

@Model.OutputEmail

引用传递给视图的模型实例。然而,这个代码:

@Html.LabelFor(x => x.OutputEmail)

是否引用模型的实际实例。它反映到模型的类型中,并生成用于该类型的标记。

因此,如果您没有将模型传递到视图,那么第一行将失败,因为模型的实例null,但第二行将成功,因为模型类型仍然是已知的。

您的模型为null。您可以使用@Html.DisplayFor(x => x.OutputEmail),也可以检查是否为null,如果为null,则不尝试输出该值。或者可以在控制器中为模型创建一个对象。