使用Html.ValidationMessageFor即可扩展显示Error Message。
默认的表达格式如下:
<span class="field-validation-error">validationMessage or defaultErrorMessage</span>
需要注意的是,错误的验证是再ModelState去取的,所以对于Action的参数的Model要注意。
以AccountController的Logon为例:
(1)
public ActionResult LogOn() { return View(); }
(2)
public ActionResult LogOn(LogOnModel model) { return View(); }
在(1)中,没有任何参数,返回页面如下:错误信息的class为"field-validation-valid",这是正常一种情况。<input data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" value="" type="text"> <span class="field-validation-valid" data-valmsg-for="UserName" data-valmsg-replace="true"></span>
第(2)中情况页面返回如下:
<input class="input-validation-error" data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" value="" type="text"> <span class="field-validation-error" data-valmsg-for="UserName" data-valmsg-replace="true">The User name field is required.</span>
这里,错误信息的class为"field-validation-error",验证已被触发,我们在入口参数上加了一个LogOnModel, 这个Model上是带有字段的验证属性的,所以,在请求发送后,将生成一个LogOnModel,然后将触发Model的验证,这对于首次访问LogOn页面来的用户来说,这并不好理解,我刚登陆,怎么就显示错误信息了呢?
在(2)中,虽然model没有与View进行绑定,但验证仍然被触发,这说明验证与传入View的model无关,而是验证请求发送所绑定的数据。
所以使用ASP.NET MVC的Validation时,对于参数类型需略微注意,以免误触发验证,造成不良的用户体验。