ValidationMessageFor with model and html attribute only - MVC 3

Murali Murugesan picture Murali Murugesan · Jan 9, 2013 · Viewed 13.7k times · Source

Working on a MVC 3 application.

I need to add a class to the validation message html. I mean for span tag.

My Model

 [Required(ErrorMessage = "Role Name is required")]
 [RegularExpression(@"^[a-zA-Z ]+$", 
     ErrorMessage = "Only alphabets and spaces allowed")]
 public string RoleName { get; set; }

Markup

  <label for="name">RoleName</label>
  @Html.TextBoxFor(m => m.RoleName)
  @Html.ValidationMessageFor(m => m.RoleName, "some", 
                           new { @class = "immediate" })

But i could not see overloaded method like @Html.ValidationMessageFor(m => m.RoleName, htmlAttributes) . if i give some text, it is not showing my validaton message entered in model. It always shows that some text only.

Any fix for this?

Answer

Jared picture Jared · Jan 9, 2013

You should be able to simply pass in null...

@Html.ValidationMessageFor(m => m.RoleName, null, new { @class = "immediate"})