我有一个模型如下 -
public string Password { get; set; }
[Compare("Password", ErrorMessage = "Password and Confirm Password have to be the same")]
public string ConfirmPassword { get; set; }
在我的HTML中,我将代码添加为
<label>Password</label>
<span class="req">*</span>
@Html.PasswordFor(x => x.Password, new { @class = "form-control form-control2", @required = "required" })
<p class="signuppace"></p>
<label>Confirm Password</label>
<span class="req">*</span>
@Html.PasswordFor(x => x.ConfirmPassword, new { @class = "form-control form-control2", @required = "required" })
显示所需字段的消息,但此处ErrorMessage&#34;密码和确认密码必须相同&#34;没有显示。我已经提到了这个1,2 SO链接。我究竟做错了什么?任何帮助将不胜感激。
答案 0 :(得分:1)
您不会显示所有相关的cshtml,但您需要显示验证消息。
使用@Html.ValidationSummary(excludePropertyErrors: false)
在一个位置显示所有验证错误,或将@Html.ValidationMessageFor(x => x.Password)
放在输入字段附近。
答案 1 :(得分:1)
除了使用JavaScript(非服务器端)执行的不显眼的客户端验证进行客户端验证之外,不要认为帮助程序会自动添加标记以显示验证错误。
您希望使用@Html.ValidationMessageFor(x => x.ConfirmPassword)
来显示错误消息,或者只是使用ModelState
检查错误。
@if (ModelState.Errors["ConfirmPassword"] != null && !string.IsNullOrWhiteSpace(ModelState.Errors["ConfirmPassword"][0]))
{
// Display the first error message for this field
ModelState.Errors["ConfirmPassword"][0]
}