title: Display ModelState error returned by JsonResult in MVC 3 project?
body: <p>I have a <em>create</em> page that uses a JsonResult action instead of ActionResult.  In the ActionResult action, the errors are displayed on the view beside the offending field.  Right now the JsonResult only returns a string that is displayed in an alert box.  </p>
  
  <p>Can I display the ModelState errors on the view?</p>
  
  <p><strong>The controller</strong></p>
  
  <pre><code>[HttpPost]
  public JsonResult Create(Tload tload)
      {
          if (ModelState.IsValid)
          {                
            ...save changes
              return Json(new { Success = 1, TransloadID = transload.TransloadID, ex = "" });
          }
          else
          {
          string totalError = "";
          foreach (var obj in ModelState.Values)
          {
              foreach (var error in obj.Errors)
              {
                  if (!string.IsNullOrEmpty(error.ErrorMessage))
                  {
                      totalError = totalError + error.ErrorMessage + Environment.NewLine;
                  }
              }
          } 
  
          return Json(new { Success = 0, ex = new Exception(totalError).Message.ToString()});
      }
  </code></pre>
  
  <p><strong>jquery/javascript code in view</strong></p>
  
  <pre><code>function Save() {
          // Step 1: Read View Data and Create JSON Object
  ...do stuff here
          // Set 2: Ajax Post
          // Here i have used ajax post for saving/updating information
          $.ajax({
              url: '/Expedite/Create',
              data: JSON.stringify(salesmain),
              type: 'POST',
              contentType: 'application/json;',
              dataType: 'json',
              success: function (result) {
  
                  if (result.Success == "1") {
                      window.location.href = "/Expedite/index";
                  }
                  else {
                      alert(result.ex);
                  }
              }
          });
  
  
      }
  </code></pre>