لا تعمل سمات ComponentModel Overridding (IE ، DisplayName) كما هو متوقع

StackOverflow https://stackoverflow.com/questions/3627256

سؤال

لدي فصلان:

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

هل يوجد طريق لتفادي هذا؟

هل كانت مفيدة؟

المحلول

لقد توصلت إلى حل لمشكلتي الخاصة. هذا ليس مثاليًا ، لكنه جيد.

نظرًا لأن هذه مجرد ViewModels ، لا يوجد منطق فيها. لذلك ، تغيرت class DocumentViewModel إلى interface IDocumentViewModel و، هاهو, ، تم حل المشكلة.

ما زلت أرغب في الحصول على هذا العمل لورث الفصول الدراسية ، لكن هذا هو أكثر عنادتي أكثر من أي حالة عمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top