我有一个 ASP.NET MVC 3 应用程序,我在其中进行 AJAX 调用并期望返回 JSON 结果。我正在使用 ELMAH 记录错误。在测试时我遇到了意外错误。 ELMAH 记录了错误,但我的客户端脚本没有记录,因为现在结果不是正确的 JSON。如果我处理 Controller 中的所有错误以返回正确的 JSON 结果,则 ELMAH 不会记录错误。我知道我可以专门调用 ELMAH 来记录错误,但我更喜欢我不必在其他任何地方这样做。
谁能阐明处理这种情况的“正确”方法?
例如
try
{
//service.dosomethingwitherror();
return new JsonResult { Data = new { result = true, message = "Success." } };
}
catch (Exception ex)
{
return new JsonResult { Data = new { result = true, message = "Failed." } };
}
因为我正在“处理”这个,所以 ELMAH 不会记录。如果我不处理这个问题,我的客户将不会获得 JSON...
最佳答案
您可以使用 ErrorSignal 类手动记录。这将执行所有已配置的 elmah 操作(日志、邮件、推文等)。
ErrorSignal.FromCurrentContext().Raise(new NotSupportedException());
参见 http://code.google.com/p/elmah/wiki/DotNetSlackersArticle#Signaling_errors获取更多信息。
如果您真的不喜欢将该代码添加到您的 Controller ,则您无法捕获异常服务器端并在您的 javascript 中处理 ajax 错误事件。
关于json - 在 MVC 3 中捕获正确 JSON 格式的错误时,如何使用 ELMAH 记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905807/