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?

War es hilfreich?

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
scroll top