Pregunta

Tengo dos clases:

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

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

Y una vista:

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

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

Espero que eso renderice

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

Pero en realidad hace

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

¿Hay alguna forma de evitar esto?

¿Fue útil?

Solución

Se me ocurrió una solución a mi propio problema. No es perfecto, pero está bien.

Dado que estos son solo modelos de vista, no hay lógica en ellos. Entonces, cambié class DocumentViewModel a interface IDocumentViewModel y, voilà, problema resuelto.

Todavía me gustaría que esto funcione para heredar clases, pero esa es más mi terquedad que cualquier caso de negocios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top