さて、この問題は私には信じられないほど奇妙に思えます。新しい記事の編集と作成の両方に使用されるビューがあります。既存の記事の編集は完全に機能しますが、新しい記事を作成すると null 参照の例外が発生します (「オブジェクト参照がオブジェクトのインスタンスに設定されていません」)。
これが私のコードです:
//Return Edit/New partial view. New if Id < 0 (will be -1)
public ActionResult Edit(int Id)
{
Models.Article a;
if (Id > 0)
{
Models.Entities db = new Models.Entities();
a = db.Article.FirstOrDefault(dba => dba.Id == Id);
}
else
{
a = new Models.Article();
a.Id = -1;
a.DateProperty = DateTime.Now; //Repeat for each date property
a.Property = ""; //Repeat for every string property
}
return PartialView("~/Views/Article/Edit.cshtml", a);
}
次に、以下を含むビューを返します (同じ行に沿ってさらに多くの要素を含みます)。
<label for="txtTitle">Title</label>
<input type="text" id="txtTitle" data-originalvalue="@Model.Title" value="@Model.Title" />
<span class="actionButton actionUndo revert" title="Undo Changes">Revert</span>
<label for="txtPublishDate">Publish Date</label>
<input type="text" id="txtPublishDate" class="datePicker" data-originalvalue="@Model.PublishDate.ToShortDateString()" value="@Model.PublishDate.ToShortDateString()" />
<span class="actionButton actionUndo revert" title="Undo Changes">Revert</span>
何らかの理由で、これが呼び出されるたびArticle/Edit?Id=-1
にページが読み込まれ、前述のエラーが発生します。強調表示されているコードは、data-originalvalue
属性 (カスタム HTML5 データ フィールド) にあります。
これらのカスタム データ フィールドを削除すると、同じエラーが発生しますが、[No relevant source lines]
.
なぜこれが起こるのか、私は非常に混乱しています。
モデル自体は ADO.Net を使用してデータベースから生成され、プロジェクトは MVC 4 と .Net 4.5 を使用します。