代码之家  ›  专栏  ›  技术社区  ›  TheBoubou codingbadger

带有jquery的ASP.NET MVC:捕获异常+显示错误消息

  •  2
  • TheBoubou codingbadger  · 技术社区  · 15 年前

    我有这个代码:

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

    在控制器中,我有:

            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);?

    谢谢,

    1 回复  |  直到 15 年前
        1
  •  3
  •   Çağdaş Tekin    15 年前

    我不建议在控制器操作中捕获所有异常。如果有的话,抓住你能处理的。否则就让他们被抛弃。

    对于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
            }
        });
    });