我对 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/