Переопределение атрибутов ComponentModel (т. Е. DisplayName) не работает должным образом - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть два класса:

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

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 02 сентября 2010

Я придумала решение своей проблемы.Это не идеально, но все в порядке.

Поскольку это всего лишь модели ViewModel, в них нет логики.Итак, я изменил class DocumentViewModel на interface IDocumentViewModel и, voilà , проблема решена.

Я все еще хотел бы получить эту работу для наследования классов, но это скорее мое упрямство, чем любоебизнес-кейс.

...