c# - 如何使 @Html.DisplayFor() 在对象上使用 ToString()?
问题描述
采购订单模型.cs
public class PurchaseOrderModel {
public SupplierModel Supplier { get; set; }
}
供应商模型.cs
public class SupplierModel {
public string Code { get; set; }
public string Name { get; set; }
public override string ToString() {
return $"{Name} ({Code})";
}
}
PurchseOrdersReport.cshtml
@Html.DisplayFor(purchaseOrder => purchaseOrder.Supplier)
我希望 Razor 引擎ToString()
调用Supplier
. 但事实并非如此,我得到了以下 HTML 输出:
<div class="display-label">Code</div>
<div class="display-field">USSCIESTMI</div>
<div class="display-label">Name</div>
<div class="display-field">MY SUPPLIER NAME</div>
解决方案
尝试使用
@(Model.PropertyType.ToString())
或者干脆
@Model.PropertyType
代替@Html.DisplayFor
推荐阅读
- apache-spark - 如何在 RDD groupBy 之后运行 columnSimilarities
- plsql - 在plsql中检查for循环中的多个字符串
- java - 套接字未将 Android 连接到 pc tcp
- html - 网页问题自动播放音乐
- c# - 在 AutoFac 容器之间共享实例
- javascript - Unity3D - 错误提示意外符号“扩展”
- regex - 正则表达式匹配美元符号和以下空格
- csv - 无法读取 csv 文件 Apache Zeppelin 0.8
- java - 编写同时接受字符串和字符串列表的 Jackson 注释
- asp.net-mvc - 应用完全初始化后交换插槽