【问题标题】:Using HTML.DisplayFor in Partial View在局部视图中使用 HTML.DisplayFor
【发布时间】:2015-04-16 13:53:59
【问题描述】:

我将资源列表从资源索引视图移至部分视图 _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>)' 不能从用法推断。尝试指定类型参数 明确的。

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

【问题讨论】:

  • 您首先 sn-p 是 DisplayNameFor(),但随后您谈论的是 .DisplayFor() - 它是什么? (它们是两种不同的东西)
  • 应该是@Html.DisplayFor(model => model.RatePerHour)

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


【解决方案1】:

如果你想显示你需要的值,就用这个

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

如果你想显示标签

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

【讨论】:

    【解决方案2】:

    我不知道为什么它现在可以工作,但解决方案 wsa

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-29
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2010-11-09
      • 2017-04-20
      • 1970-01-01
      相关资源
      最近更新 更多