Überschreiberkomponentmodel -Attribute (dh DisplayName) funktioniert nicht wie erwartet
-
26-09-2019 - |
Frage
Ich habe zwei Klassen:
public class DocumentViewModel
{
public virtual string DocumentNumber { get; set; }
}
public class PurchaseOrderViewModel : DocumentViewModel
{
[DisplayName("PO Number")]
public override string DocumentNumber { get; set; }
}
Und eine Aussicht:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Onyx.Web.Models.PurchaseOrderViewModel>" %>
<strong><%: Html.LabelFor(i => i.DocumentNumber) %>:</strong> <%: Model.DocumentNumber %>
Ich erwarte, dass das rendert
<strong>PO Number:</strong> PO-12345
Aber es macht tatsächlich wieder
<strong>DocumentNumber:</strong> PO-12345
Gibt es eine Möglichkeit, dies umzugehen?
Lösung
Ich habe mir eine Lösung für mein eigenes Problem ausgedacht. Es ist nicht perfekt, aber es ist in Ordnung.
Da es sich nur um ViewModels handelt, gibt es keine Logik. Also habe ich mich geändert class DocumentViewModel
zu interface IDocumentViewModel
und, voilà, Problem gelöst.
Ich möchte dies immer noch zum Erben von Kursen zum Erben des Erbens bringen, aber das ist mehr meine Sturheit als jeder Business Case.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow