我有一个 Razor 视图,开头如下:
@using My.Models
@model MySpecificModel
@{
ViewBag.Title = "My Title";
// NullReferenceException here:
string dateUtc =
(Model == null ? DateTime.UtcNow.ToShortDateString() :
Model.Date.ToShortDateString());
我看不出最后一行出现 NullReferenceException 的原因(注意:“= ?:”东西在我的源代码中的一行。它的格式适合这里。)
然后我删除/赋值的声明,dateUtc
并且 NullReferenceException 向上移动到 ViewBag.Title 行:
@using My.Models
@model MySpecificModel
@{
ViewBag.Title = "My Title"; // NullReferenceException here:
这怎么可能发生? ViewBag
当然不是空的。
注意 1Model
:只有在为空时才会发生这种情况。
注意 2:MySpecificModel.Date 是 DateTime 类型,因此永远不能为空。