自定义MVC错误消息本地化

4

我希望使用属性(例如RequiredAttribute和RangeAttribute)在模型上本地化我的错误消息。我正在使用Visual Studio 2010中的ASP.NET MVC2。

如果我的本地化资源在resx资源文件中,使用ErrorMessageResourceName和ErrorMessageResourceType将非常容易...但是,我需要将其与自定义本地化框架集成。

我已在web.config的全球化部分设置了resourceProviderFactoryType,但MVC不使用它。它尝试访问资源文件上的静态属性,该属性返回本地化字符串。

这是调用堆栈...

System.ComponentModel.DataAnnotations.ValidationAttribute.SetResourceAccessorByPropertyLookup() +56576
   System.ComponentModel.DataAnnotations.ValidationAttribute.SetupResourceAccessor() +146
   System.ComponentModel.DataAnnotations.ValidationAttribute.get_ErrorMessageString() +12
   System.ComponentModel.DataAnnotations.ValidationAttribute.FormatErrorMessage(String name) +33
   System.Web.Mvc.DataAnnotationsModelValidator.get_ErrorMessage() +31
   System.Web.Mvc.RequiredAttributeAdapter.GetClientValidationRules() +46
   System.Web.Mvc.Html.ValidationExtensions.<ApplyFieldValidationMetadata>b__0(ModelValidator v) +10
   System.Linq.<SelectManyIterator>d__14`2.MoveNext() +238
   System.Web.Mvc.Html.ValidationExtensions.ApplyFieldValidationMetadata(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String modelName) +207
   System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary`2 htmlAttributes) +527
   System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor(HtmlHelper`1 htmlHelper, Expression`1 expression, String validationMessage, IDictionary`2 htmlAttributes) +82
   System.Web.Mvc.Html.ValidationExtensions.ValidationMessageFor(HtmlHelper`1 htmlHelper, Expression`1 expression) +75

有人知道我是否可以以某种方式覆盖MVC检索错误消息以显示的方法吗?

谢谢 k

2个回答

2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接