لا تعمل سمات ComponentModel Overridding (IE ، DisplayName) كما هو متوقع
-
26-09-2019 - |
سؤال
لدي فصلان:
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
و، هاهو, ، تم حل المشكلة.
ما زلت أرغب في الحصول على هذا العمل لورث الفصول الدراسية ، لكن هذا هو أكثر عنادتي أكثر من أي حالة عمل.
لا تنتمي إلى StackOverflow