asp.net MVC3 DefaultModelBinder错误消息密钥

asp.net MVC3 DefaultModelBinder错误消息密钥,asp.net,asp.net-mvc-3,resources,localization,Asp.net,Asp.net Mvc 3,Resources,Localization,关于翻译DefaultModelBinder提供的默认错误消息(如或),stackoverflow和其他网站上有很多问题(和答案) 这些问题的所有答案基本上都支持在App_GlobalResources下创建一个ressource(resx)文件,并显示一条消息“PropertyValueInvalid” 这很好,它确实可以工作,但是还有其他消息(例如“值xxx必须是一个数字”),最大的问题是:我到底在哪里可以得到用于模型绑定验证的消息键的列表,带有它们所用于的上下文的描述,以便我可以翻译它们中

关于翻译DefaultModelBinder提供的默认错误消息(如或),stackoverflow和其他网站上有很多问题(和答案)

这些问题的所有答案基本上都支持在App_GlobalResources下创建一个ressource(resx)文件,并显示一条消息“PropertyValueInvalid”


这很好,它确实可以工作,但是还有其他消息(例如“值xxx必须是一个数字”),最大的问题是:我到底在哪里可以得到用于模型绑定验证的消息键的列表,带有它们所用于的上下文的描述,以便我可以翻译它们中的每一个?

DefaultModelBinder.ResourceClassKey=“ResourceFileName”在应用程序启动方法中设置。DefaultModelBinder类使用Asp.Net MVC使用的资源文件中未定义的其他资源键

在反汇编DefaultModelBinder时,有一个从自定义资源文件读取的方法GetUserResourceString。此函数仅使用以下消息键调用两次:

  • 属性值required(需要一个值。)
  • PropertyValueInvalid(值“{0}”对{1}无效。)

这些是MVC3中可以为DefaultModelBinder设置的唯一消息。

似乎不起作用(MVC4)。我使用自定义消息在App_GlobalResources中添加了一个ErrorMessages.resx,然后设置DefaultModelBinder.ResourceClassKey=“ErrorMessages”;ClientDataTypeModelValidatorProvider.ResourceClassKey=“ErrorMessages”;在Global.asax应用程序中\u启动。。。并且仍然显示标准消息。我添加的键:FieldMustBeDate、FieldMustBeNumeric(这些工作)、PropertyValueInvalid、PropertyValueRequired(这两个不工作)我使用的是MVC4,它对我有用。您是手动创建文件夹并将其命名为App_Globalresources,还是右键单击项目并添加ASP.NET文件夹?此外,我没有添加以下内容:ClientDataTypeModelValidatorProvider.ResourceClassKey=“ErrorMessages”