【问题标题】:Give error to ajax call from controller's catch从控制器的 catch 给 ajax 调用提供错误
【发布时间】:2013-06-09 00:13:04
【问题描述】:

我有一个对我的控制器操作的 jquery ajax 调用。 现在在我的控制器中,它被捕获了。现在我需要调用我的 ajax 调用的错误函数。如果我抛出错误,这将起作用。有没有其他方法可以调用错误函数。

对了,我的控制器的action的返回类型是string/void。

【问题讨论】:

  • 您能否提供代码来显示您尝试过的内容?

标签: asp.net-mvc asp.net-mvc-3 jquery error-handling


【解决方案1】:

把这个写在你的 Action Throw new HttpException(); 这将调用你的 ajax 函数的错误并用这个 $.ajax 方法函数 error:function() {do something } 处理它

【讨论】:

    【解决方案2】:

    我现在已经验证了这一点,所以我将其发布为答案。您可以像@Timur 提到的那样抛出异常,但这会产生您可能不想要/不需要的开销。

    在您的操作方法中,您可以将Response.StatusCode 设置为错误值(300、400 或 500 范围内的任何值),这将导致 jQuery 调用错误处理程序而不是成功处理程序。

    【讨论】:

    • 如果我需要使用您建议的响应传递一个实际的错误消息,然后在警报中显示它,我如何在控制器中管理该过程,如果可以的话,如何在 .js 中捕获它?
    • 还有一个Response.StatusDescription,您可以将其设置为您想要的任何字符串值。我相信这是 jQuery 的 error ajax 处理程序中的最后一个参数。另外,为了修改我原来的答案,处理这一切的更正确的 MVC 方法可能是返回一个 HttpStatusCodeResult 而不是直接在 Response 对象上设置值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多