【问题标题】:Why does Html.DisplayFor show the model property name and not the property value?为什么 Html.DisplayFor 显示模型属性名称而不是属性值?
【发布时间】:2020-02-17 09:12:40
【问题描述】:

我有以下 Razor 表列:

<td style="width: 300px;">@Html.DisplayFor(m => m.TendersReceived[i].Name)</td>

然而列的客户端呈现显示模型属性name,即上面在名称列中显示Name,而不是实际名称, Name 属性。

有关TendersReceived 属性的更多信息:

public List<TenSubTenderersQualitySummaryItemViewmodel> TendersReceived { get; set; } = new List<TenSubTenderersQualitySummaryItemViewmodel>();

public class TenSubTenderersQualitySummaryItemViewmodel
{
    public int Number { get; set; }
    public string Name { get; set; }
    public decimal Wq { get; set; }
    public decimal Threshold { get; set; }
    [Display(Name = "Qualify")]
    public bool DoesQualify { get; set; }
    [Display(Name = "Qualify")]
    public string DoesQualifyText => DoesQualify ? "YES" : "NO";
    public string Progress { get; set; }
    [Display(Name = "Staff Acceptability")]
    public string StaffAcceptability { get; set; }
    [Display(Name = "POINTS RANKING")]
    public decimal PointsRanking { get; set; }
    public bool IsNrt { get; set; }
    public decimal PointsTechnical { get; set; }
    public decimal PointsManagement { get; set; }
    public decimal PointsQuality { get; set; }
    public decimal PointsTotal { get; set; }
}

【问题讨论】:

  • 能否在您的问题中为我们发布TendersReceived 课程?
  • @NathanMiller 我已经这样做了。
  • @ProfK 你能分享你预期输出的任何例子吗?
  • @ProfK 你能分享你的视图代码吗?

标签: asp.net-mvc web razor html-helper


【解决方案1】:

您使用的

DisplayFor&lt;TModel,TValue&gt;(HtmlHelper&lt;TModel&gt;, Expression&lt;Func&lt;TModel,TValue&gt;&gt;)

返回由表达式表达式表示的对象中的每个属性的 HTML 标记。

不正确。它通常用于模板,通常不会将DisplayFor 用于原始类型。

使用上述方法会尝试将属性名称呈现为标签,然后呈现其值。

Name {value here}

如果值为 null 或空字符串,则只会看到标签。

假设集合是视图的模型的成员,只需调用模型的成员

<td style="width: 300px;">@Model.TendersReceived[i].Name</td>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多