protected override void OnException(ExceptionContext filterContext) { LogHelper.ErrorLog("", filterContext.Exception); filterContext.ExceptionHandled = true; base.OnException(filterContext); JsonSimpleResponse response = new JsonSimpleResponse(); if (filterContext.Exception is AbhsException && (filterContext.Exception as AbhsException).ErrorCode < 10000) { response.ErrorCode = (filterContext.Exception as AbhsException).ErrorCode; response.ErrorMsg = (filterContext.Exception as AbhsException).Message; } else { response.ErrorCode = 10000; response.ErrorMsg = "出错了,请联系管理员"; } if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest()) { //do something //filterContext.Result = new Json(new JsonSimpleResponse() { State = false, ErrorMsg = "服务器异常" }); filterContext.HttpContext.Response.Headers.Add(AbhsProtocolConst.ERROR_HEADER_NAME, response.ErrorCode.ToString()); filterContext.HttpContext.Response.StatusCode = 500; //filterContext.HttpContext.Response.Write(JsonConvert.SerializeObject(response)); //filterContext.ExceptionHandled = true; filterContext.Result = new JsonResult() { Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { if (IsNoLoginError(filterContext)) { filterContext.Result = new RedirectResult(Url.Action("index", "Login")); } else { filterContext.Result = new RedirectResult(Url.Action("index", "error")); } } }
public ActionResult AddRelation(int subjectId, int relationSubjectId) { JsonSimpleResponse response = null; try { new SubjectGroupBll().AddRelation(subjectId, relationSubjectId, CurrentUserID); response = new SuccessJsonResponse(); } catch (AbhsException ex) { response = new JsonSimpleResponse(); response.State = false; response.ErrorCode = ex.ErrorCode; response.ErrorMsg = ex.Message; } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SavePracticeResult(string dataStr, StudyTaskTypeEnum taskType) { try { JObject data = JsonConvert.DeserializeObject(dataStr) as JObject; int studyTaskId = data["id"].Value <int>(); int useTime = data["useTime"].Value <int>(); List <StudentAnswerBase> answers = new List <StudentAnswerBase>(); JArray jAnswers = data["answers"] as JArray; foreach (var jAnswer in jAnswers) { var answer = SubjectAnswerObjectBuilder.TranslateAnswer(jAnswer.ToString()); answers.Add(answer); } StudentPracticeBll bll = new StudentPracticeBll(); bll.SaveResult( GetCurrentUser().StudentId, studyTaskId, useTime, answers, taskType); return(Json(new SuccessJsonResponse())); } catch (AbhsException ex) { if (ex.ErrorCode == (int)ErrorCodeEnum.StudentTaskStatusInvalid) { JsonSimpleResponse res = new JsonSimpleResponse(); res.State = false; res.ErrorMsg = "你已经完成该练习"; return(Json(res)); } else { throw; } } }
protected override void OnException(ExceptionContext filterContext) { LogHelper.ErrorLog("", filterContext.Exception); filterContext.ExceptionHandled = true; base.OnException(filterContext); JsonSimpleResponse response = new JsonSimpleResponse(); response.State = false; if (filterContext.Exception is AbhsException && (filterContext.Exception as AbhsException).ErrorCode < 10000) { response.ErrorCode = (filterContext.Exception as AbhsException).ErrorCode; response.ErrorMsg = (filterContext.Exception as AbhsException).Message; } else { response.ErrorCode = 10000; response.ErrorMsg = "出错了,请联系管理员"; } if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest()) { filterContext.HttpContext.Response.Headers.Add(AbhsProtocolConst.ERROR_HEADER_NAME, response.ErrorCode.ToString()); filterContext.HttpContext.Response.StatusCode = 500; filterContext.Result = new JsonResult() { Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } else { filterContext.Result = new RedirectResult(Url.Action("index", "error", new { code = response.ErrorCode, msg = response.ErrorMsg })); } }