继承视图模型并更改DisplayName数据注释

ser*_*gpa 7 c# inheritance data-annotations asp.net-mvc-5.1

我有一个视图模型,我从基类视图模型继承.我试图更改继承类中的DisplayName元数据,但它不起作用.

以下是视图模型:

namespace ViewModels
{
    public class BaseViewModel
    {
        [DisplayName(Name = "Base Description")]
        public virtual string Description { get; set; }
    }

     public class DerivedViewModel : BaseViewModel
     {
        [DisplayName(Name = "Derived Description")]
        public override string Description { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

和控制器:

    public ViewResult Create()
    {
        DerivedViewModel model = new DerivedViewModel();
        model.Active = true;
        return View(model);
    }
Run Code Online (Sandbox Code Playgroud)

呈现视图时,预期的显示名称是"派生描述",而是我得到"基本描述".

使用:MVC 5.1,.NET Framework 4.5,Visual Studio 2013

任何人都可以告诉我如何覆盖派生类中的显示数据注释?

ser*_*gpa 0

现在这个问题已经解决了。引入了最新的 jQuery 和 jQuery unobtrusive,这解决了这个问题。

  • 我想知道您是否可以进一步解释一下这个答案。您在原来的问题中遇到的问题似乎正是我所面临的。但是,我不明白 JQuery 与显示名称有什么关系?也许这个答案是针对不同的问题? (6认同)