asp.net-mvc - MVC5 中的自定义验证错误消息

标签 asp.net-mvc validation asp.net-mvc-5

我对 MVC5 和 asp.net 很陌生,我找不到答案,所以如果有人能告诉我如何在验证失败后自定义消息,我将不胜感激。假设我有这样的代码:

    [Required]
    [MaxLength(11),MinLength(11)]
    [RegularExpression("^[0-9]+$")]

    public string Pesel { get; set; }

使用除数字以外的任何其他符号后,我收到如下消息:
Pesel 字段必须匹配正则表达式 '^[0-9]+$'

如何更改此消息?

最佳答案

System.ComponentModel.DataAnnotations 中的所有验证属性有一个 ErrorMessage您可以设置的属性:

[Required(ErrorMessage = "Foo")]
[MinLength(11, ErrorMessage = "Foo"), MaxLength(11, ErrorMessage = "Foo")]
[RegularExpression("^[0-9]+$", ErrorMessage = "Foo")]

此外,您仍然可以在错误消息中使用属性的字段名称/显示名称。这是通过字符串格式设置完成的。以下示例将呈现错误消息“您忘记了 MyPropertyName”。
[Required(ErrorMessage = "You forgot {0}")]
public string MyPropertyName { get; set; }

这也尊重 DisplayAttribute。自 MyPropertyName不是一个非常用户友好的名称,下面的示例将呈现“您忘记了我的属性(property)”的错误消息。
[Display(Name = "My Property")]
[Required(ErrorMessage = "You forgot {0}")]
public string MyPropertyName { get; set; }

最后,您可以使用其他字符串格式值来呈现在更复杂的验证属性中使用的值和选项,例如 MinLengthAttribute你正在使用的。最后一个示例将呈现错误消息“我的属性的最小长度为 11”:
[Display(Name = "My Property")]
[MinLength(11, ErrorMessage = "The minimum length for {0} is {1}")]
public string MyPropertyName { get; set; }

关于asp.net-mvc - MVC5 中的自定义验证错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22610586/

相关文章:

python - 如何检查表中尚不存在用户名?

active-directory - ASP.NET MVC 身份和事件目录

c# - ASP.NET MVC 5 和 Visual Studio 2015RC CS0234 和 CS0103 错误

c# - 保存更改后回滚

javascript - 我可以调用 XmlHttpRequest 中的任何方法吗?不仅是 GET、POST、PUT

jquery $.post 获取从方法返回的字符串

jquery - 使用 Jquery Bootgrid 的 Asp.Net MVC 应用程序不显示任何结果

c# - @Html.Partial 导致类型错误

javascript - 使用 angularjs 验证输入值

ASP.NET:如何在客户端和服务器端获得相同的验证器控件