繁体   English   中英

C#ASP.NET MVC自定义错误处理与JSON

[英]C# asp.net mvc custom error handling with JSON

我执行各种操作时会返回一个复杂的类型,而且我想知道如何传递回自定义JSON对象以显示任何错误。 考虑以下代码

业务层

public ResultObject StartJob(string jobName){ 
    ...
    return new ResultObject{ErrorMessage = "Job cannot be started due to ..."};
}

控制者

[HttpPost]
public ActionResult StartJob(string jobName){
    var resultObject = BusinessLayer.StartJob(jobName);

    if (resultObject.HasErrors){ 
       return Json(new {success = false, message = resultObject.message}, JsonRequestBehavior.AllowGet);  
    }
    else{
       return Json(new {success = true}, JsonRequestBeahvior.AllowGet);  
    }
}

当我执行ajax发布时,尽管我返回success = false,但ajax调用仍然成功,并且jQuery不调用error()方法。

此类模式会重复多次。

这里的“问题”是ajax调用成功。 当ajax调用失败时,JQuery将仅执行'error()'方法。 您应该在客户端回调中读取成功变量的值,如果为false,则调用'error()',即

if (!data.success)
{
  error();
}

它会调用成功事件如果要触发错误事件,则在两者之间引发自定义异常。 保持异常未处理,它将进入错误范围。

error: function() {
                    .......
                    .......
                }

或者,如果您想在Ajax内部成功处理它,请尝试

 success: function(data) {

            if (!data.success)
            {
              error();
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM