craigmoliver
craigmoliver

Reputation: 6562

How to extend the ValidationSummary HTML Helper in ASP.NET MVC?

I need to wrap the Validation Summary in a div. How do I set the Validation Summary to wrap it with a div when errors are present?

<div class="validation-summary"> 
  <%= Html.ValidationSummary("Login was unsuccessful. Please correct the errors and try again.") %>
</div>

Upvotes: 15

Views: 19995

Answers (4)

NoWar
NoWar

Reputation: 37633

Use this CSS for li tag for example...

.validation-summary-errors ul li {color:Red;}

Upvotes: 1

Chal92
Chal92

Reputation: 59

For MVC 2, ValidationSummary is a extension method, you must add

using System.Web.Mvc.Html;

Upvotes: 5

ten5peed
ten5peed

Reputation: 15890

I had to extend the validation summary extensions in another project of mine to deal with more than one form on a page.

Although this is different, you could create your own extension method...

namespace System.Web.Mvc
{
    public static class ViewExtensions
    {
        public static string MyValidationSummary(this HtmlHelper html, string validationMessage)
        {
            if (!html.ViewData.ModelState.IsValid)
            {
                return "<div class=\"validation-summary\">" + html.ValidationSummary(validationMessage) + "</div>"
            }

            return "";
        }
    }
}

Then just call

<%= Html.MyValidationSummary(
    "Login was unsuccessful. Please correct the errors and try again.") %>

HTHs, Charles

Upvotes: 25

&#199;ağdaş Tekin
&#199;ağdaş Tekin

Reputation: 16651

What you can do is this :

<%if (!ViewData.ModelState.IsValid) { %>
<div class="validation-summary"> 
    <%= Html.ValidationSummary(
        "Login was unsuccessful. Please correct the errors and try again.") %>
</div>
<% } %>

Upvotes: 12

Related Questions