MVC3属性的不同显示名称

时间:2013-05-10 19:41:02

标签: asp.net-mvc-3 data-annotations

我的视图模型上有以下属性:

[Display(Name ="Contractor Name")]
public string Name { get; set; }

由于我在不同的地方使用这个视图模型,我想根据派生类将属性的名称更改为“Customer Name”,“Some other Name”等。这将帮助我获得正确的验证消息等。

是否可以覆盖派生类中的Name属性?

由于

2 个答案:

答案 0 :(得分:2)

这对我有用。

public class PropertyTitle : DisplayNameAttribute
{
    public int _ID { get; set; }

    public PropertyTitle(int ID)
    {
        this._ID = ID;
    }

    public override string DisplayName
    {
        get
        {
            if(_ID == 1)
               return "1";
            else if(_ID == 1)
               return "2";
            return "";
        }
    }
}

public class TestModel
{
    [PropertyTitle(2)]
    public string MyTextField { get; set; }
}

答案 1 :(得分:0)

马丁的评论达到了目的。

  

是的,这是可能的。我做到了。在派生类中只是覆盖   Name属性并为其指定另一个注释属性。 - 马丁   史密斯

由于