Domanda

Ho due classi:

public class DocumentViewModel
{
    public virtual string DocumentNumber { get; set; }
}

public class PurchaseOrderViewModel : DocumentViewModel
{
    [DisplayName("PO Number")]
    public override string DocumentNumber { get; set; }
}

E una vista:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Onyx.Web.Models.PurchaseOrderViewModel>" %>

<strong><%: Html.LabelFor(i => i.DocumentNumber) %>:</strong> <%: Model.DocumentNumber %>

Mi aspetto che si renda

<strong>PO Number:</strong> PO-12345

Ma in realtà rende

<strong>DocumentNumber:</strong> PO-12345

C'è un modo per aggirare questo?

È stato utile?

Soluzione

Ho trovato una soluzione al mio problema. Non è perfetto, ma va bene.

Dal momento che questi sono solo ViewModels, non c'è una logica in essi. Quindi, sono cambiato class DocumentViewModel a interface IDocumentViewModel e, Ecco, problema risolto.

Mi piacerebbe ancora far funzionare questo per ereditare le lezioni, ma è più la mia testardaggine di qualsiasi caso aziendale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top