【问题标题】:Using DisplayFor on model's nested properties在模型的嵌套属性上使用 DisplayFor
【发布时间】:2014-07-31 14:16:33
【问题描述】:

视图模型:

public class LiquiditySummariesViewModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
    public DateTime ValueDate { get; set; }

    public List<LiquidityA1B5SummariesModel> ControlGroupsSummaries { get; set; }
}

public class LiquidityA1B5SummariesModel
{
    [DisplayFormat(DataFormatString = "{0:n2}")]
    public decimal Balance { get; set; }
    ...
}

我正在尝试访问视图上的 Balance

 @foreach (var item in Model.ControlGroupsSummaries)
 {
        <tr>
            <td>
                 @Html.DisplayFor(p=>p.ControlGroupsSummaries.Select(z=>z.Balance))
            </td>
        </tr>    
 }

但它不起作用:

@Html.DisplayFor(p=>p.ControlGroupsSummaries.Select(z=>z.Balance))

抛出

模板只能用于字段访问、属性访问、 一维数组索引,或单参数自定义索引器 表达式。

我不知道如何解决它。我想坚持使用数据注释,所以任何 string.Format 解决方案都不是一种选择。

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    您必须迭代您的列表并为每个项目调用显示:

    @foreach (var summary in Model.ControlGroupsSummaries)
    {
        @Html.DisplayFor(x => summary.Balance)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多