MVC 3在不同位置显示所需的正则表达式验证

时间:2012-07-25 07:27:47

标签: c# asp.net-mvc-3

我已经完成了必需和正则表达式验证。 唯一的问题是我想在页面内的不同位置显示它们。 就像在文本框之前显示所需的验证消息一样。正则表达式验证消息将显示在文本框之后。我该怎么办?

这是我的型号代码

 [Required(ErrorMessage = "*")]
 [RegularExpression(@"^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$", ErrorMessage = "Invalid Email")]
 public string Email { get; set; }

这是我的查看代码

 @Html.ValidationMessageFor(p => p.Email)
 @Html.TextBoxFor(p => p.Email)
 @Html.LabelFor(p => p.Email, "Email")

在上面的代码中,两个错误消息都会显示在文本框之前,我想做这样的事情

@Html.ValidationMessageFor(p => p.Email) - required validation message which is "*"
@Html.TextBoxFor(p => p.Email)
@Html.LabelFor(p => p.Email, "Email")
@Html.ValidationMessageFor(p => p.Email) - regular expression validation message which is "Invalid Email"

1 个答案:

答案 0 :(得分:0)

没有任何开箱即可让您对单个控件的单个验证错误进行精细控制。您需要手动解析ModelState中的各个错误 - 请参阅此example