2010-09-02 46 views
0

我有兩個班的工作:Overridding ComponentModel屬性(即,顯示名稱)無法如預期那樣

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 

有沒有辦法解決這個問題?

+0

我看了看可能的重複,但沒有解決方案,再加上它在3月份被問過。我希望事情可能發生變化。 – 2010-09-02 13:01:24

+0

我嘗試過演員,沒有這樣的運氣:(另外,我可以理解在另一個問題中發生了什麼,因爲他們的基礎模型有一個屬性。在我的示例中,只有孩子具有分配的屬性。 – 2010-09-02 13:04:36

回答

0

我想出了一個解決我自己的問題。這並不完美,但沒關係。

由於這些只是ViewModels,所以它們中沒有邏輯。所以,我將class DocumentViewModel更改爲interface IDocumentViewModel,並且voilà,問題解決了。

我仍然想繼續爲繼承類工作,但這比我的任何商業案例更固執。