次のように始まる Razor ビューがあります。
@using My.Models
@model MySpecificModel
@{
ViewBag.Title = "My Title";
// NullReferenceException here:
string dateUtc =
(Model == null ? DateTime.UtcNow.ToShortDateString() :
Model.Date.ToShortDateString());
最後の行に NullReferenceException の理由がわかりません (注: " = ? :" はソース コードの 1 行にあります。ここに収まるようにフォーマットされています)。
次に、/ への代入の宣言を削除するdateUtc
と、NullReferenceException が ViewBag.Title 行まで移動します。
@using My.Models
@model MySpecificModel
@{
ViewBag.Title = "My Title"; // NullReferenceException here:
これはどのように起こりますか? ViewBag
もちろんnullではありません。
注 1 : これModel
は null の場合にのみ発生します。
注 2 : MySpecificModel.Date は DateTime 型であるため、null になることはありません。