5

ページを作成し、ActionResultの代わりにJsonResultアクションを使用しています。 ActionResultアクションでは、問題のあるフィールドの横のビューにエラーが表示されます。現在、JsonResultはアラートボックスに表示される文字列のみを返します。MVC 3プロジェクトでJsonResultが返したModelStateエラーを表示しますか?

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    
} 
関連する問題