日期:2014-05-17  浏览次数:20431 次

@Html.ValidationSummary()



在@using (Html.BeginForm()) 后边都有 @Html.ValidationSummary(),

这个一般有什么用?   后边的input不是都注明要验证,那这个还有什么用?

我看源码:
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div> 

<input data-val="true" data-val-number="字段 Id 必须是一个数字。" data-val-required="Id 字段是必需的。" id="Id" name="Id" type="hidden" value="20" />  

<input data-val="true" data-val-number="字段 TypeId 必须是一个数字。" data-val-required="TypeId 字段是必需的。" id="TypeId" name="TypeId" type="hidden" value="2" />

------解决方案--------------------
1.input注明要验证是属于前台的,当某各原因导致前台无法进行验证,比如js没有成功加载的,
当后台if (ModelState.IsValid)失败后,错误信息就会显示到 @Html.ValidationSummary()
2.当前后台验证都通过,但某些逻辑验证没有通过,比如用记名密码错误的,可以手工添加错误信息,
ModelState.AddModelError("", "The current password is incorrect or the new password is invalid.");这个也会显示到@Html.ValidationSummary()