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

本文关键字:ErrorMessage 对象 实例化 设置 ValidationAttribute 是否 | 更新日期: 2023-09-27 18:18:58

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

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

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

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

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

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

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

来源:MSDN

所以我猜你不能这样做,但是你可以在其他地方改变errormessage,或者在你的类中使用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:

如何自定义验证属性错误消息?