2009-07-23 42 views
2

我有這樣的代碼:ASP.NET MVC用jQuery:catch異常+顯示錯誤消息

$(document).ready(function() { 
    $('.DOFFDelete').click(function() { 
     var id = $(this).attr("id"); 
     $.post("/Customer/DayOffDelete", { customerid: getCustomerId(), doffId: id }, function(data) { 
      $("#myFormDOFF").html(data); 
     }); 
    }); 
}); 

在Controller中,我有這樣的:

 CustomerDayOff customerDayOff; 
     try 
     { 
      .....    
     } 
     catch (Exception ex) 
     { 
      return View("ErrorTest",ex.Message); 
     } 
     return View("CustomerDetail");  

一個異常發生時,I」 d沒有改變「myFormDOFF」中的任何內容,但在「myFormMessage」中顯示異常消息。

問題: 1.在jQuery代碼中,如何區分有效結果和異常?

  1. 有沒有辦法使用控制器「Home」(或其他共享控制器)和「ShowError」動作來顯示所有控制器的錯誤,例如使用RedirectToAction代替返回視圖(「ErrorTest」,ex.Message); ?

感謝,

回答

3

我不建議在你的控制器動作捕捉所有的異常。只要抓住那些你可以處理的東西,如果有的話。否則,讓他們被拋出。

至於jQuery方面的東西,請使用ajax方法而不是post方法來針對服務器的不同響應運行不同的函數。

//assuming you have a button/link with an ID of "myFormDOFF" 
$("#myFormDOFF").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "/Customer/DayOffDelete", 
     data: { customerid: getCustomerId(), doffId: id }, 
     success: function(msg){ 
      $("#myFormDOFF").html(msg); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      //handle the error here 
     } 
    }); 
}); 
+0

謝謝。但是當我按下「DOFFDelete」按鈕時,我怎麼能調用這個? – 2009-07-23 08:09:22