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表达式访问模型。
此代码:
@Model.OutputEmail
引用传递给视图的模型实例。然而,这个代码:
@Html.LabelFor(x => x.OutputEmail)
是否不引用模型的实际实例。它反映到模型的类型中,并生成用于该类型的标记。
因此,如果您没有将模型传递到视图,那么第一行将失败,因为模型的实例是null
,但第二行将成功,因为模型类型仍然是已知的。
您的模型为null。您可以使用@Html.DisplayFor(x => x.OutputEmail)
,也可以检查是否为null,如果为null,则不尝试输出该值。或者可以在控制器中为模型创建一个对象。