2009-07-23 68 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