有两个选择。 OnSuccess和OnFailure。这些允许我在页面更新成功或失败时调用函数。所以,我有一个叫做发送和发送电子邮件的动作,并且有这个代码...
try
{
// Code to send email
return Content("Your message has been successfully!", "text/html");
}
catch (Exception ex)
{
return Content("An error occurred sending your message...", "text/html");
}
问题是,即使它属于Exception,它仍然会调用OnSuccess。我想要做的是当它落入异常时调用另一个函数。我该怎么做呢?
答案 0 :(得分:3)
当服务器返回的HTTP状态代码不是200时,将调用OnFailure回调。在您的示例中,两者都是200.您可以解决异常并吞下它。
所以:
catch (Exception ex)
{
Response.StatusCode = 500;
return Content("An error occurred sending your message...", "text/html");
}
然后:
function onFail(result) {
alert(result.responseText);
};
答案 1 :(得分:0)
基本上您没有将响应状态或错误消息设置回客户端。另外,我收集你的接收JSON,这可能是一个回归JSON的好主意。 另请注意,IIS可以吞下异常,如下例所示,@ Steve Stevenson-Leggett表示:
Response.TrySkipIisCustomErrors = true
以下是上一个问题的stackoverflow示例: How to return correct response on error in ASP.NET MVC 3.0 via JSON?
希望这会有所帮助。