componentmodel属性(つまり、displayName)をオーバーリッドする
-
26-09-2019 - |
質問
私には2つのクラスがあります:
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
これを回避する方法はありますか?
解決
私は自分の問題の解決策を思いつきました。完璧ではありませんが、大丈夫です。
これらは単なるビューモデルであるため、論理はありません。だから、私は変わった class DocumentViewModel
に interface IDocumentViewModel
と、 ボイラ, 、 問題が解決しました。
私はまだクラスを継承するためにこれを機能させたいと思っていますが、それはどのビジネスケースよりも私の頑固さです。
所属していません StackOverflow