覆盖componentModel属性(即显示名称)无法正常工作
-
26-09-2019 - |
题
我有两个课程:
public class DocumentViewModel
{
public virtual string DocumentNumber { get; set; }
}
public class PurchaseOrderViewModel : DocumentViewModel
{
[DisplayName("PO Number")]
public override string DocumentNumber { get; set; }
}
和一个视图:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Onyx.Web.Models.PurchaseOrderViewModel>" %>
<strong><%: Html.LabelFor(i => i.DocumentNumber) %>:</strong> <%: Model.DocumentNumber %>
我希望这会渲染
<strong>PO Number:</strong> PO-12345
但实际上渲染
<strong>DocumentNumber:</strong> PO-12345
有办法解决这个问题吗?
解决方案
我想出了解决自己问题的解决方案。这不是完美的,但是没关系。
由于这些只是ViewModels,因此其中没有逻辑。所以我改变了 class DocumentViewModel
至 interface IDocumentViewModel
和, 瞧, , 问题解决了。
我仍然想为继承课程工作,但这比任何业务案例都更加固执。
不隶属于 StackOverflow