我想使用属性(例如RequiredAttribute和RangeAttribute)在我的模型上本地化我的错误消息。我在Visual Studio 2010中使用ASP.NET MVC。
如果我的本地化资源位于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如何检索要显示的错误消息?
感谢 ķ
答案 0 :(得分:2)
我将创建一个继承自标准Mvc HandleError类属性的自定义类属性...
http://blog.dantup.com/2009/04/aspnet-mvc-handleerror-attribute-custom.html
答案 1 :(得分:0)