【问题标题】:How to change default validation error message in ASP.NET MVC?如何更改 ASP.NET MVC 中的默认验证错误消息?
【发布时间】:2011-06-02 11:42:35
【问题描述】:

假设我的模型中有这个属性:

[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')]

【问题讨论】:

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


    【解决方案1】:

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

    我在这里总结一下:

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

    一切就绪。

    【讨论】:

    • 有帮助,谢谢。似乎即使在可悲的 MVC3 中问题也没有解决。那么 DataType 属性的 ErrorMessage 有什么作用呢?
    • 它太重了,我们需要为此添加 resx 文件。 :(
    • 我们已经切换到MVC3,然后是MVC4,到目前为止没有问题。
    • 我创建了一个新的 mvc 3 项目,并完成了所有步骤。即使我将资源文件更改为嵌入式资源,但仍显示默认 AccountController 的“用户名字段是必需的”。请告诉我应该怎么做?或者如果你可以制作 mvc3 示例。我相信有很多人有这个问题。谢谢
    • @mahdigh 您可以将其作为一个 SO 问题提出,以便每个人都可以解决它吗?
    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 2020-08-15
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多