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