2012-04-18 62 views
2

從控制器返回一個錯誤的AJAX調用我有一個Ajax調用,看起來像這樣:在MVC3

$.ajax({ 
       url: '@Url.Action("SaveStudy")', 
       type: "POST", 
       contentType: 'application/json', 
       data: JSON.stringify({ 
        ....irrelevant data 
       }), 
       success: function (result) { 

         ....irrelevant data 

       }, 
       error: function (result) { 

        //alert("I had an error"); 
       } 
      }); 

是Ajax調用的錯誤部分到達時,在我的控制器邏輯發送回HttpStatusCodeResult 。控制器代碼如下所示:

if (Participants==null) 
      { 
       return new HttpStatusCodeResult(409, "No Players were selected!"); 
      } 

有沒有辦法讓我的AJAX的錯誤部分稱之爲「沒有玩家選擇」在警報顯示(或什麼的,真的)該錯誤消息?

回答

4

看一看的jQuery.ajax documentation。從jQuery 1.5開始,你可以使用statuscode來獲取這些信息。

$.ajax({ 
    statusCode: { 
    404: function() { 
     alert("page not found"); 
    } 
    } 
}); 
+0

工程。然而,我所希望的是,我以編程方式建立在控制器側的錯誤字符串,並有向上傳遞到Ajax調用然後放入警報。錯誤的API有:錯誤(jqXHR,textStatus,errorThrown),但textStatus剛剛返回 '錯誤' 和errorThrown返回 '衝突' – Scottingham 2012-04-18 17:24:52

+1

@Scottingham - 啊,我明白了。不幸的是,我不完全確定如何做到這一點。也許從你的控制器方法返回JSON(你是無論如何字符串化JSON數據 - 你可以做到這一點的服務器端)。當然,這將是一種不同的格式,但是您的錯誤處理程序可以知道如何提取正確的數據。 – JasCav 2012-04-18 17:33:25