PurchaseOrderModel.cs
public class PurchaseOrderModel {
public SupplierModel Supplier { get; set; }
}
SupplierModel.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()
的{{1}}方法。但事实并非如此,我得到了以下HTML输出:
Supplier
答案 0 :(得分:0)
我发现Stack溢出的另一个主题概述了以下解决方案。请参阅How to show the model's attribute dynamically in mvc?
@ Html.DisplayFor(...)有一个过载需要两个参数。
@Html.DisplayFor(purchaseOrder => purchaseOrder.Supplier, Model.Supplier.ToString())
答案 1 :(得分:0)
尝试使用
@(Model.PropertyType.ToString())
或者只是
@Model.PropertyType
而不是@Html.DisplayFor