Атрибуты компонентного компонента переопределения (т. Е. DisplayName) не работает должным образом
-
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
Есть ли способ обойти это?
Решение
Я придумал решение своей собственной проблемы. Это не идеально, но все в порядке.
Поскольку это просто просмотр моделе, в них не логика. Итак, я изменил class DocumentViewModel
к interface IDocumentViewModel
и, воил, проблема решена.
Я все еще хотел бы получить эту работу для наследства классов, но это больше моего упрямства, чем любое деловое дело.
Не связан с StackOverflow