在Data Annotations中的Required属性中参数化资源字符串

时间:2012-02-07 01:16:35

标签: c# asp.net data-annotations

我希望这个主题有意义:)

我不喜欢本地/全局的东西,但如果我有一个名为IsRequired的资源,其值为“{0}”。如何使用数据注释? (不是MVC顺便说一句)

这当然会“奏效”:

[Required(ErrorMessageResourceName = "IsRequired", 
ErrorMessageResourceType=typeof(Resources))]

但我需要这样的东西:

[Required(string.Format(ErrorMessageResourceName = IsRequired, "MyProperty"), 
ErrorMessageResourceType=typeof(Resources))]

(是的,我知道这不起作用;)

是否可以在数据注释必需属性中格式化资源字符串?为什么在1就足够时编写200个必需的资源字符串?

谢谢, 理查德

1 个答案:

答案 0 :(得分:1)

一个选项是子类RequiredAttribute

public class MandatoryAttribute : RequiredAttribute
{
    // ...
}

然后,您可以覆盖Validate方法,在该方法中,您可以检查ValidationContext属性名称,并使用该方法生成正确的错误消息。