我在尝试在视图(MVC应用程序)中使用Html.EditorForModel帮助程序时收到了上述错误。以下是视图的代码:
@model CodeFirst.Models.Person
@{
ViewBag.Title = "CreatePerson";
}
<h2>CreatePerson</h2>
@using (Html.BeginForm())
{
<fieldset>
<legend>Create person entry</legend>
@Html.EditorForModel()
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
我试图使用Object类型的编辑器模板。这是模板
@inherits System.Web.Mvc.WebViewPage
@if (Model == null)
<span>@ViewData.ModelMetadata.NullDisplayText</span>
else
{
<table cellpadding="0" cellspacing="0" class="editor-table">
@foreach (var prop in ViewData
.ModelMetadata
.Properties
.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm)))
{
<tr>
<td>
<div class="editor-label">
@prop.GetDisplayName()
</div>
</td>
<td width="10px">@(prop.IsRequired ? "*" : "") </td>
<td>
<div class="editor-field">
<span>@Html.Editor(prop.PropertyName)</span>
<span>@Html.ValidationMessage(prop.PropertyName, "*")</span>
</div>
</td>
</tr>
}
</table>
}
我在MVC书中找到了这个样本。它为必填字段添加“*”字符。 尝试访问视图时收到上述错误。如果你知道为什么会出现这个错误,请告诉我。
答案 0 :(得分:3)
看起来if
语句缺少大括号,即
@if (Model == null)
<span>@ViewData.ModelMetadata.NullDisplayText</span>
else
将其替换为
@if (Model == null) {
<span>@ViewData.ModelMetadata.NullDisplayText</span>
} else {
...
}