2011-06-02 132 views
26

说我有这个属性在我的模型:如何更改ASP.NET MVC中的默认验证错误消息?

[DisplayName("test")] 
[Required(ErrorMessage = "required")] 
public DateTime? SomeDate { get; set; } 

当你Html.TextBoxFor(model => model.SomeDate)键入“ASDF”,你会得到验证错误消息“值‘ASDF’是无效的测试。”

如何修改该消息? ASP.NET MVC忽略[DataType(DataType.DateTime, ErrorMessage = 'some other message')]

回答

25

显然我的问题已经在How to replace the default ModelState error message in Asp.net MVC 2?回答。

我会在这里总结一下吧:

  • 为您的项目创建文件夹App_GlobalResources文件(右键单击项目 - >添加 - >添加ASP.NET文件夹 - > App_GlobalResources文件)。
  • 在该文件夹中添加一个resx文件。说MyNewResource.resx
  • 以期望的消息格式(例如,“内容{0}对字段{1}”无效)添加资源键PropertyValueInvalid)。如果你想改变PropertyValueRequired,也要添加它。
  • 将代码DefaultModelBinder.ResourceClassKey = "MyNewResource"添加到您的Global.asax启动代码中。

大功告成。

+2

有帮助,thx。似乎即使在令人伤心的MVC3中,问题仍未解决。那么ErrorMessage for DataType属性是做什么的? – rafek 2012-02-18 05:38:20

+3

它太重了,我们需要为此添加resx文件。 :( – kbvishnu 2012-11-29 09:57:44

+0

它不适用于mvc 3.你是否得到它为mvc3工作? – 2013-08-22 03:21:52

相关问题