好的,所以这个问题对我来说似乎非常奇怪。我有一个用于编辑和创建新文章的视图。编辑现有文章完美无缺,但是创建新文章会给我一个空引用异常(“对象引用未设置为对象的实例”)。
这是我的代码:
//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。