There are many situations where you want to handle error from server side and display those errors on page.
Follow the steps and you are done.
Step 1) Create extention method.
using System.Collections;
using System.Web.Mvc;
using System.Linq;
namespace WebUI.Helpers.Util
{
public static class ModelStateHelper
{
public static IEnumerable Errors(this ModelStateDictionary modelState)
{
if (!modelState.IsValid)
{
return modelState.ToDictionary(kvp => kvp.Key,
kvp => kvp.Value.Errors.Select(e => SetMessageFormat(e.ErrorMessage)).ToArray()).Where(m => m.Value.Count() > 0);
}
return null;
}
private static string SetMessageFormat(string errorMessage)
{
return errorMessage;
}
}
}
Step 2)
Pass list of error in json
return Json(new {status=false, errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet);
Step 3)
Create a function in js to display list of errors.
function DisplayErrors(errors) {
$('.input-validation-error').removeClass('input-validation-error');
$("div.validation-summary-valid").removeClass().addClass("validation-summary-errors");
$(".validation-summary-errors ul").empty();
for (var i = 0; i < errors.length; i++) {
$("#" + errors[i].Key).addClass('input-validation-error');
$(".validation-summary-errors ul").append("<li>" + errors[i].Value[0] + "</li>");
}
}
Step 4) Call action method from jquery ajax call
$.ajax({
url: PromoterPath + "/Add",
type: 'POST',
data: paramdata,
cache: false,
success: function (result) {
if (result.status) {
}
else {
DisplayErrors(result.errors);
}
}
});
Follow the steps and you are done.
Step 1) Create extention method.
using System.Collections;
using System.Web.Mvc;
using System.Linq;
namespace WebUI.Helpers.Util
{
public static class ModelStateHelper
{
public static IEnumerable Errors(this ModelStateDictionary modelState)
{
if (!modelState.IsValid)
{
return modelState.ToDictionary(kvp => kvp.Key,
kvp => kvp.Value.Errors.Select(e => SetMessageFormat(e.ErrorMessage)).ToArray()).Where(m => m.Value.Count() > 0);
}
return null;
}
private static string SetMessageFormat(string errorMessage)
{
return errorMessage;
}
}
}
Step 2)
Pass list of error in json
return Json(new {status=false, errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet);
Step 3)
Create a function in js to display list of errors.
function DisplayErrors(errors) {
$('.input-validation-error').removeClass('input-validation-error');
$("div.validation-summary-valid").removeClass().addClass("validation-summary-errors");
$(".validation-summary-errors ul").empty();
for (var i = 0; i < errors.length; i++) {
$("#" + errors[i].Key).addClass('input-validation-error');
$(".validation-summary-errors ul").append("<li>" + errors[i].Value[0] + "</li>");
}
}
Step 4) Call action method from jquery ajax call
$.ajax({
url: PromoterPath + "/Add",
type: 'POST',
data: paramdata,
cache: false,
success: function (result) {
if (result.status) {
}
else {
DisplayErrors(result.errors);
}
}
});
No comments:
Post a Comment