【发布时间】:2015-12-02 19:26:19
【问题描述】:
我在控制器中有几种方法,如下所示:
[HttpPost]
public ActionResult AddEditCommentToInvoice(string invoiceNumber, string comments)
{
var response = new { success = true, msg = "Comment saved", statusMsg = "Comment saved" };
try
{
var recordsModified = invoiceService.AddCommentsToInvoice(invoiceNumber, comments);
Log.Info(recordsModified ? "Updated Comment" : "Did not update Comment");
} catch (Exception ex) {
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return Json(new {
success = false,
msg = "There is missing field data",
statusMsg = ex.Message
}, JsonRequestBehavior.AllowGet);
}
return Json(response, JsonRequestBehavior.AllowGet);
}
虽然这段代码有效,但我不喜欢这种方法,因为:
- 尝试/捕获很昂贵
- 代码捕获 System.Exception
- 代码很丑
现在我知道我可以使用 OnException 或 HandleError 属性。
我还对 ELMAH 做了一些研究,这看起来很有希望。
但我仍然想通过 AJAX 向我的用户返回 JSON 以指示操作是否成功。
所以我的问题是,有没有人使用这三种方法中的任何一种(或者特别是 ELMAH)通过 AJAX 返回 JSON?
【问题讨论】:
-
ELMAH 仅监控和报告未处理的异常,它不会修改您的应用程序流程,属性方法是您的最佳选择。
-
我做同样的事情,我一直讨厌它。我期待看到解决方案。它一直是我的“技术债务”中的一项。
-
@kryptonkal - 我刚遇到这个 - plainoldstan.blogspot.cz/2012/08/…
标签: asp.net json ajax asp.net-mvc