如何在循环中而不是从Razor视图中的模型访问DisplayName注释?

时间:2017-03-27 12:19:58

标签: c# asp.net-mvc razor asp.net-mvc-5

这可能是一个基本问题,但我目前错过了这个问题。

我通常使用:

@Html.LabelFor(model=>model.myProperty)
@Html.DisplayFor(model=>model.myProperty)

从视图模型中显示属性的DisplayName注释。此外,DisplayFor会显示该值。

但是,如果我想迭代一个模型列表然后再做同样的事情呢?

@foreach (var item in Model.myPropertyList)
{
  @Html.LabelFor(item=>item.myProperty) //No longer works
  @Html.DisplayFor(item=>item.myProperty) // No Longer works.
}

foreach循环中的代码应该采取什么来获取属性DisplayName和值。

我意识到以下内容可用于显示值:

@item.myProperty

编辑:

答案似乎是:

@Html.DisplayNameFor(modelItem=>item.myProperty)
@Html.DisplayFor(modelItem=>item.myProperty)

在这里和我发现帮助者......团队努力....谢谢

3 个答案:

答案 0 :(得分:2)

你可以用这个:

@Html.DisplayFor(model=>item.myProperty)

答案 1 :(得分:1)

检查以下

<div>
        <table border="1" class="col-md-12 text-center table-font table-hover table-striped table" id="tblTemp">
            <thead>
                <tr>
                    <th class="text-center" style="color:#000;">
                        My Property For Label
                    </th>
                    <th class="text-center" style="color:#000;">
                        My Property For Textbox
                    </th>                        
                </tr>
            </thead>
            <tbody>

     @foreach (var item in Model.myPropertyList)
     {
       <tr>
           <td class="text-left">
               @Html.LabelFor(modelItem=>item.myProperty) //Should work
           </td>
           <td class="text-left">
               @Html.DisplayFor(modelItem=>item.myProperty) // Should work
           </td>
        </tr>
      }
     </tbody>
   </table>
</div>

答案 2 :(得分:1)

@Html.DisplayNameFor(modelItem=>item.myProperty)
@Html.DisplayFor(modelItem=>item.myProperty)