它看起來像這樣的代碼將僅用於常量類型的工作:
public enum MyEnum
{
First,
Second
}
public class LoginViewModel
{
const MyEnum En = MyEnum.First;
[Required]
[DataType(DataType.Password)]
[Display(Name = (En == MyEnum.First ? "Password" : "aaa"))]
public string Password { get; set; }
}
應該有與自己實現的顯示名稱可能的第二個選項:
public enum MyEnum
{
First,
Second
}
public MyDisplayNameAttribute : DisplayNameAttribute
{
public MyDisplayNameAttribute (MyEnum en, string text1, string text2) : base (CorrectName (en, text1, text2))
{}
public static string CorrectName (MyEnum en, string text1, string text2)
{
return en == MyEnum.First ? text1 : text2;
}
}
public class LoginViewModel
{
const MyEnum En = MyEnum.First;
[Required]
[DataType(DataType.Password)]
[MyDisplayName(MyEnum.Second, "password1", "password2")]
public string Password { get; set; }
}
不過我不覺得這兩種解決方案都更好,然後添加一些標籤到您的ViewModel
你可以檢查我的答案在下面。也許你自己的屬性可以解決問題。只有顯示被封閉纔有可能擴展DisplayName –