@html.DisplayFor不显示数据

时间:2013-12-08 02:29:51

标签: c# asp.net-mvc-4 view

我有以下观点给我带来问题:

@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?

1 个答案:

答案 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)