How to get modelstate errors in json c#?

How to get modelstate errors in json c#?, someone asked me to explain?

In this tutorial I am going show you how to handle modelstate errors in json c#. Here I am using MVC5 and entity framework.You can use SelectMany function c# to get error message from modelstate mvc. It will generate error message string it contains modelstate errors; we can return as json and display in html element.

You have to define validations inside the class as per requirement. Here I have written for password match and minimum character required.


   public class ChangePasswordViewModel
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 4)]
        [Display(Name = "New password")]
        public string NewPassword { get; set; }
       [Display(Name = "Confirm new password")]
        [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }

To display modelstate errors in view:

Ajax jQuery function call:

 You can return mvc model state errors via ajax JQuery function call, 

            $("#changepassword-form").submit(function (e) {
                e.preventDefault(); // <-- prevents the form from submitting
                        url: "@Url.Action("ChangePassword", "Home")",
                        type: "POST",
                        async: false,
                        data: $(this).serialize(),
                        dataType: "json",
                        success: function (data) {
                            return false;
                        error: function (err) {
                    return false;


Return Json to view:


        public ActionResult ChangePassword(ChangePasswordViewModel model)
            Htmlinfo htmlinfo = new Htmlinfo();
            if (!ModelState.IsValid)
                var message = string.Join(" | ", ModelState.Values
                    .SelectMany(v => v.Errors)
                    .Select(e => e.ErrorMessage));
                htmlinfo.message = message;
                UserLogin user = HtmlUtility.GetUserData(User.Identity.Name);
                if (user != null)
                    user.Password = HtmlUtility.Encrypt(model.NewPassword);
                    db.Entry(user).State = System.Data.Entity.EntityState.Modified;
                    htmlinfo.message = "Password changed successfully.";
                    htmlinfo.message = "user does not exist.";
            return Json(htmlinfo, JsonRequestBehavior.AllowGet);


get error message from modelstate mvc

This below video explains in detail about return mvc modelstate errors via ajax.


Post your comments / questions