【问题标题】:localize default model validation in mvc 2在 mvc 2 中本地化默认模型验证
【发布时间】:2010-07-01 09:22:48
【问题描述】:
[Required]
[DisplayName("my date")]
public DateTime? DateReg { get; set; }

因此,如果用户要传递无效的日期时间值,他将收到此消息 “值 '02.07.201022' 对我的日期无效。”

如何翻译/本地化这条消息?

【问题讨论】:

    标签: asp.net asp.net-mvc validation asp.net-mvc-2 data-annotations


    【解决方案1】:

    App_GlobalResourcesApplication_Start 中添加Messages.resx Global.asax

    DefaultModelBinder.ResourceClassKey = "Messages";
    

    然后在Messages.resx 文件中,您可以定义以下字符串:

    PropertyValueInvalid:值 {0} 对属性 {1} 无效

    密钥需要调用PropertyValueInvalid

    【讨论】:

    • 你从哪里知道这些东西的:)?
    • 为了更好地了解框架的内部工作原理,我一直在阅读 ASP.NET MVC 源代码(感谢 MS 提供)。
    • 在我的测试中我发现你还需要添加[Required(ErrorMessageResourceType=typeof(Site.Models.Resources.Messages), ErrorMessageResourceName = "RequiredAttribute")]。对吗?
    • 经过更多测试,显然这种技术仅在没有属性附加到模型属性时才有效,或者说,只有在 DataTypeAttribute 自动启动或附加时进行验证时才有效到物业。例如,当拥有 DateTime 属性并尝试向其发送“abc”时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2013-02-21
    • 2018-06-09
    • 1970-01-01
    相关资源
    最近更新 更多