我有以下观点给我带来问题:
@model List<Scheduling_Application.ViewModel.ScheduleMap>
<h2>Map</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="MainTable">
<tr>
<th>
Hour
</th>
<th>
Field 1
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.TimeHour)
</td>
<td>
<table class="MemberTable">
@foreach (var member in item.MembersFieldOne)
{
<tr>
<td>
@Html.HiddenFor(m => member.ID);
@Html.DisplayFor(m => member.FirstName);
@Html.TextBoxFor(m => member.FirstName);
</td>
</tr>
}
<tr>
<td>
@Html.ActionLink("Add New", "Create", "Session");
</td>
</tr>
</table>
</td>
</tr>
}
</table>
我的问题是@html.displayfor(m =&gt; member.FirstName)不会显示任何数据,但TextBoxFor会显示数据。模型设置正确并被加载到视图中,但为什么DisplayFor Work?
答案 0 :(得分:0)
解决方法是编写自己的字符串模板。这些(带有默认项目设置)将分别使用Html.DisplayFor(x =&gt; x.MyString)和Html.EditorFor(x =&gt; x.MyString)进行渲染。
查看/共享/ DisplayTemplates / String.cshtml
@model string
@Model
查看/共享/ EditorTemplates / String.cshtml
@model string
@Html.TextBoxFor(x => x)