asp.net-mvc - 为什么 Html.DisplayFor 显示模型属性名称而不是属性值?
问题描述
我有以下 Razor 表列:
<td style="width: 300px;">@Html.DisplayFor(m => m.TendersReceived[i].Name)</td>
然而,该列的客户端呈现显示模型属性名称,即上面显示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; }
}
解决方案
您使用的
DisplayFor<TModel,TValue>(HtmlHelper<TModel>, Expression<Func<TModel,TValue>>)
返回由 Expression 表达式表示的对象中每个属性的HTML 标记。
是不正确的。它通常用于模板,通常不DisplayFor
用于原始类型。
使用上述将尝试将属性名称呈现为标签,然后呈现其值。
Name {value here}
如果值为 null 或空字符串,您只会看到标签。
假设集合是视图的模型的成员,只需调用模型的成员
<td style="width: 300px;">@Model.TendersReceived[i].Name</td>
推荐阅读
- c# - 过滤器配置在不同的窗口 C# WPF
- java - 如何将来自多个 Access 行的数据插入到 Java 中的单个多行字符串中
- swift - Swift ZSH 自动补全
- reactjs - npm 中是否有等效于“mvn 包”的内容?
- rabbitmq - RABBITMQ 向 LOGSTASH 发送消息
- cmake - 未知的 CMake 命令“CMAKE_DEPENDENT_OPTION”
- sql - 在 sql/oracle 中比较时间
- java - 有没有办法在没有 getter 方法的字段的情况下让 Spring 自定义验证器拒绝值?
- python - 将类“str”数组连接到数据框
- python - 如何加载存储为 state_dict 的 MoCo 模型权重?