[Asp.net mvc]Html.ValidationSummary(bool)

时间:2021-06-15 17:22:24

摘要

对ValidationSummary是HtmlHelper的扩展方法,用来返回 System.Web.Mvc.ModelStateDictionary (即ModelState)对象中的验证消息的未排序列表(ul 元素)。

一个例子

@Html.ValidationSummary(true):告知辅助方法排除属性级别的错误。换而言之,就是告知ValidationSummary方法只显示ModelState中与模型本身相关的错误,而不显示那些与具体模型属性相关的错误。false,会显示当前模型的所有错误。

定义

 //
// 摘要:
// 返回 System.Web.Mvc.ModelStateDictionary 对象中验证消息的未排序列表(ul 元素),还可以选择仅显示模型级错误。
//
// 参数:
// htmlHelper:
// 此方法扩展的 HTML 帮助器实例。
//
// excludePropertyErrors:
// true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。
//
// 返回结果:
// 一个字符串,其中包含验证消息的未排序列表(ul 元素)。
public static MvcHtmlString ValidationSummary(this HtmlHelper htmlHelper, bool excludePropertyErrors);
 true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。

测试

        public ActionResult Test()
{
ModelState.AddModelError("", "这是一个错误");
ModelState.AddModelError("Name", "无名很有名,但必须写");
return View();
}
    <div>
@Html.ValidationSummary(true)
</div>

结果

[Asp.net mvc]Html.ValidationSummary(bool)

如果修改为false

[Asp.net mvc]Html.ValidationSummary(bool)

通过这两种情况,也说明

true 表示使摘要仅显示模型级错误;false 表示使摘要显示所有错误。

总结

第一个是模型级错误,因为代码中错误没有提供与特定属性关联的键(或一个空键)。第二个是与Name属性相关联的错误,所以在true的情况下,是不会显示的,除非将参数Name删除,或者改为false。