簡體   English   中英

重寫ComponentModel屬性(即DisplayName)無法按預期工作

[英]Overridding ComponentModel attributes (ie, DisplayName) doesn't work as expected

我有兩節課:

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

有辦法解決這個問題嗎?

我已經針對自己的問題提出了解決方案。 這不是完美的,但沒關系。

由於這些只是ViewModel,因此其中沒有邏輯。 所以,我改變class DocumentViewModelinterface IDocumentViewModel和, ,問題就迎刃而解了。

我仍然希望在繼承類方面做到這一點,但這比任何商業案例都更加固執。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM