/// <summary> /// Creates a Validation Summary /// </summary> /// <typeparam name="TViewModel"></typeparam> /// <param name="html"></param> /// <param name="headerText">The header message to display introducing the errors</param> /// <param name="mode">The error display mode</param> /// <returns></returns> public static IHtmlString ValidationSummary <TViewModel>(this HtmlHelper <TViewModel> html, string headerText, ValidationSummaryMode mode) { if (!html.ViewData.ModelState.IsValid) { var builder = new StringBuilder("<div class=\"validation-summary\">"); var pTag = new TagBuilder("p", new { @class = "validation-summary-message" }); pTag.InnerHtml = html.Encode(headerText); builder.Append(pTag.ToString()); if (mode != ValidationSummaryMode.HeaderOnly) { builder.Append("<ul class=\"validation-summary-errors\">"); foreach (var key in html.ComponentFactory().ErrorProvider.AllErrors.Keys) { foreach (var error in html.ComponentFactory().ErrorProvider.AllErrors[key]) { if (key == string.Empty || mode == ValidationSummaryMode.List) { builder.Append("<li>" + error + "</li>"); } else { builder.Append("<li><a href=\"#" + key + "\" title=\"Click to jump to erroneous field\">" + error + "</a></li>"); } } } builder.Append("</ul>"); } builder.Append("</div>"); return(new HtmlString(builder.ToString())); } return(null); }
/// <summary> /// Creates a Validation Summary /// </summary> /// <typeparam name="TViewModel"></typeparam> /// <param name="html"></param> /// <param name="mode">The error display mode</param> /// <returns></returns> public static IHtmlString ValidationSummary <TViewModel>(this HtmlHelper <TViewModel> html, ValidationSummaryMode mode) { return(html.ValidationSummary("There were the following problems with the data you entered:", mode)); }