5

У меня есть , создайте страницу, в которой используется действие JsonResult вместо ActionResult. В действии ActionResult ошибки отображаются в представлении рядом с полем нарушения. Прямо сейчас JsonResult возвращает только строку, которая отображается в окне предупреждения.Ошибка отображения моделиState, возвращаемой JsonResult в проекте MVC 3?

Могу ли я отображать ошибки ModelState в представлении?

Контроллер

[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()}); 
    } 

JQuery/JavaScript-код в целях

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); 
       } 
      } 
     }); 


    } 

ответ

1

имеют заполнитель для ошибки и скрыть его первоначально

<div id="err"></div> 

и при ошибке с подняты

else { 
     $("#err").html(result.ex); 
     $("#err").show(); 
     //or you can use .slideDown() etc    
} 
Смежные вопросы