是否可以在实例化对象时设置ValidationAttribute.ErrorMessage值?

时间:2014-08-21 20:50:08

标签: c#

我有一个具有Required属性和ErrorMessage的类:

public class Color
{
    [Required(ErrorMessage = "Please Select Color")]   
    public int Id { get; set; } 
    public string Name { get; set; }

}

我在两个不同的下拉列表中使用该类的对象,并希望更改显示为特定于下拉列表的验证错误消息。因此,对于一个下拉列表,消息将是"请选择新颜色"对于另一个下拉列表,消息将是"请选择旧颜色"。

因此,当我创建如下所示的对象时,我是否还可以在必需属性上设置ErrorMessage?

Fruit newFruit = new Fruit()
{
   Id = 1,
   Name = "Apple"
}

1 个答案:

答案 0 :(得分:1)

  

传递给属性的值必须在编译时为编译器所知   时间。

来源:MSDN

所以我想你不能这样,但你可以在其他地方更改错误消息,或者在你的类中使用ErrorMessage属性。

建议1:

// in class
[Required(ErrorMessage = "Please select {0} color")]   
public int Id { get; set; } 

//gui
string errormessage = ""; //get errormessage here
string state = "old" //get state;
errormessage = string.Format(errormessage, state);
//set errormessage

建议2:

How to customize validation attribute error message?