Dai*_*Bok 6 asp.net globalization asp.net-mvc resx
我目前正在试图找出如何本地化MVC生成的错误消息.让我使用默认的模型绑定器作为示例,所以我可以解释这个问题.
假设我有一个表单,用户进入他的年龄.然后用户在表单中输入"十",而不是获得预期的错误
"年龄必须在18到25岁之间."
消息
"价值'十'对年龄无效."
被展示.
实体的年龄属性定义如下:
[Range(18, 25, ErrorMessageResourceType = typeof (Errors),
ErrorMessageResourceName = "Age", ErrorMessage = "Range_ErrorMessage")]
public int Age { get; set; }
Run Code Online (Sandbox Code Playgroud)
一些挖后,我发现这个错误文字来自于System.Web.Mvc.Resources.DefaultModelBinder_ValueInvalid中MvcResources.resx文件.
现在,如何创建此文件的本地化版本?
作为一种解决方案,例如,我应该下载MVC来源并添加MvcResources.en_GB.resx,MvcResources.fr_FR.resx,MvcResources.es_ES.resx和MvcResources.de_DE.resx,然后编译我自己的版本MVC.dll?
但我不喜欢这个想法.还有其他人知道更好的方法吗?
请参阅http://forums.asp.net/p/1512140/3608427.aspx,向下滚动到该页底部附近的Brad Wilson的回复(2010年1月9日星期六,下午3:20).DefaultModelBinder上有静态属性,您可以设置这些属性来本地化一般错误消息.
使用通用错误消息而不是[Range]消息的原因是[Range]提供了验证错误消息,但是这种特殊情况是绑定错误.框架绝对没有办法希望将字符串"ten"转换为Int32,因此它甚至无法触发[Range]验证器.这就是该论坛中提到的"PropertyValueInvalid"键控制的内容.
| 归档时间: |
|
| 查看次数: |
3846 次 |
| 最近记录: |