使用jQuery的ASP.NET MVC:捕获异常+显示错误消息

时间:2009-07-23 07:36:43

标签: jquery asp.net-mvc exception

我有这段代码:

    $(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");     

发生异常时,我想在“myFormDOFF”中没有更改任何内容,但在“myFormMessage”中显示异常消息。

问题: 1.在jQuery代码中,如何区分有效结果和异常?

  1. 有没有办法使用控制器“Home”(或其他共享控制器)和“ShowError”操作来显示所有控制器的错误,例如使用RedirectToAction而不是return View(“ErrorTest”,ex.Message) ); ?
  2. 谢谢,

1 个答案:

答案 0 :(得分: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
        }
    });
});