How can I customize the appearance of server-side validation errors in Asp.net MVC GridView ?

How can I customize the appearance of server-side validation errors in Asp.net MVC GridView ?

To customize the appearance of server-side validation errors in an ASP.NET MVC GridView, you can follow these steps:

  1. Set up validation in your model:

Make sure your model has the necessary validation attributes.

csharp

public class Person

{

[Required(ErrorMessage = “First Name is required.”)]

public string FirstName { get; set; }

[Required(ErrorMessage = “Last Name is required.”)]

public string LastName { get; set; }

[Range(1, 120, ErrorMessage = “Age must be between 1 and 120.”)]

public int Age { get; set; }

}

2. Controller action to handle form submission:

public class HomeController : Controller

{

[HttpPost]

public ActionResult Save(Person person)

{

if (ModelState.IsValid)

{

// Save logic here

return RedirectToAction(“Index”);

}

// If validation fails, return to the view with the model

return View(“Index”, person);

}

}

3. Customize the validation message display in your view:

In your view, use the Html.ValidationMessageFor and Html.ValidationSummary helpers to display validation messages. You can style these elements using CSS.

@model IEnumerable<Person>

@{

ViewBag.Title = “GridView Example”;

}

<h2>GridView Example</h2>

@using (Html.BeginForm(“Save”, “Home”, FormMethod.Post))

{

<table>

<thead>

<tr>

<th>First Name</th>

<th>Last Name</th>

<th>Age</th>

</tr>

</thead>

<tbody>

@foreach (var person in Model)

{

<tr>

<td>

@Html.TextBoxFor(m => person.FirstName)

@Html.ValidationMessageFor(m => person.FirstName, “”, new { @class = “text-danger” })

</td>

<td>

@Html.TextBoxFor(m => person.LastName)

@Html.ValidationMessageFor(m => person.LastName, “”, new { @class = “text-danger” })

</td>

<td>

@Html.TextBoxFor(m => person.Age)

@Html.ValidationMessageFor(m => person.Age, “”, new { @class = “text-danger” })

</td>

</tr>

}

</tbody>

</table>

<button type=”submit”>Save</button>

@Html.ValidationSummary(true, “”, new { @class = “text-danger” })

}

<style>

.text-danger {

color: red;

}

</style>

4. CSS customization:

In the example above, the text-danger class is used to style validation messages in red. You can customize this CSS class to suit your needs.

CSS:

.text-danger { color: red; font-weight: bold; font-size: 12px; }

5. Ensure client-side validation is enabled:

Make sure client-side validation is enabled in your project by including the necessary scripts in your layout file:

html

<script src=”~/Scripts/jquery.validate.min.js”></script>

<script src=”~/Scripts/jquery.validate.unobtrusive.min.js”></script>

By following these steps, you can customize the appearance of server-side validation errors in an ASP.NET MVC GridView. This approach ensures that validation messages are displayed in a user-friendly manner, and you have complete control over their appearance through CSS.

Leave a Comment

Your email address will not be published. Required fields are marked *