在部分视图中使用HTML.DisplayFor

时间:2015-02-16 05:11:28

标签: razor asp.net-mvc-5 partial-views

我将资源列表从我的资源索引视图移动到部分视图_ResourceInList。

资源的原始视图看起来像这样

....<dd>
        @Html.DisplayFor(model => model.RatePerHour)
    </dd>

将其移至局部视图我必须删除@ HTML.DisplayFor()行并使用裸@Model来引用数据。

@model Proj.Models.Resource
<tr>
    <td>
        @Model.Name
    </td>
    <td>
        @Model.Team.Name
    </td>
    <td>
        @Model.EmploymentStatus.Status
    </td>
    <td>
        @Model.RatePerHour
    </td>
    <td>
        @Model.MaxAvailability
    </td>
    <td>
        @Model.Note
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id = Model.ResourceID }) |
        @Html.ActionLink("Details", "Details", new { id = Model.ResourceID }) |
        @Html.ActionLink("Delete", "Delete", new { id = Model.ResourceID })
    </td>
</tr>

但是我装饰我的模型是有原因的,但是当我尝试使用以下变化时,它会抱怨

<td> 
    @Html.DisplayFor(@Model.RatePerHour)
</td>
  

编译器错误消息:CS0411:方法的类型参数   “System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper,   System.Linq.Expressions.Expression&GT)”   无法从使用中推断出来。尝试指定类型参数   明确。

<td> 
         @Html.DisplayFor(@Model => model.RatePerHour)
</td>

2 个答案:

答案 0 :(得分:0)

如果您想显示您需要使用的值

<td> 
         @Html.DisplayFor(m => m.RatePerHour)
</td>

如果要显示标签

<td> 
         @Html.LabelFor(m => m.RatePerHour)
</td>

答案 1 :(得分:0)

我不知道为什么它现在正在工作,但解决方案是

    <td>
    @Html.DisplayFor(model => model.RatePerHour)
</td>

我相信这是我尝试的第一件事。