2013-12-08 149 views
1

我有以下觀點,即是給我的問題:@ html.DisplayFor不顯示數據

@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 => member.FirstName)將不顯示任何數據但TextBoxFor會顯示數據。模型設置正確並且正在加載到視圖中,但爲什麼DisplayFor Work不會?

+0

這應該正常工作,除非你有DisplayFor – Shyju

+0

的一些定製版本我做沒有任何自定義版本的DisplayFor,但我也同意你應該工作,這也是爲什麼我發佈它,因爲對我來說它應該工作。 – Chris

+0

如果可以,請發佈您的模型類代碼 – Vivek

回答

0

解決方法是編寫自己的字符串模板。這些(使用默認項目設置)將分別使用Html.DisplayFor(x => x.MyString)和Html.EditorFor(x => x.MyString)來呈現。

查看/共享/ DisplayTemplates/String.cshtml

@model string 
@Model 

查看/共享/ EditorTemplates/String.cshtml

@model string 
@Html.TextBoxFor(x => x)