2

我在 ASP.NET MVC 应用程序中使用 DataAnnotions 来验证我的输入模型。如果我想为错误消息使用资源文件,那么我必须使用命名参数指定这些文件,如下所示:

[Required(
    ErrorMessageResourceType = typeof(Validation),
    ErrorMessageResourceName = "NameRequired")]

由于我在一堆文件中使用它,我想,如果我可以使用这样的构造函数会更容易(并且更具可读性):

[Required(typeof(Validation), "NameRequired")]

如果我编写自己的自定义验证属性,我可以实现这样的“简单构造函数”:

public class MyCustomValidationAttribute : ValidationAttribute
{
    public MyCustomValidationAttribute(Type resourceType, string resourceName)
    {
        base.ErrorMessageResourceType = resourceType;
        base.ErrorMessageResourceName = resourceName;
    }
}

我是在这里遗漏了什么,还是希望我们 Microsoft 的 DataAnnotations 团队只写一些额外的行?:-)

编辑:

只是为了澄清:我有一个名为“Validation.resx”的资源文件。

4

2 回答 2

0

我听到你的声音,感受到你的痛苦。我们有一个包含数千个需要数据注释的项目的数据库。

一种选择是使用资源文件。一开始可能看起来更多的工作,但您可以将资源重用于简单的事情,例如“需要名称”。有关一些潜在客户,请参阅此StackOverflow 项目

于 2010-08-21T21:22:43.633 回答
0

You could have a look at this Github extension which results in much cleaner code: http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx

于 2013-05-03T10:51:33.877 回答