public override void OnException(ExceptionContext filterContext) { //If message is null or empty, then fill with generic message var errorMessage = filterContext.Exception.Message; //Set the response status code to 500 filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; //Needed for IIS7.0 filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; var result = new ApiResultEntity() { Status = ApiStatusEnum.Failure.ToString(), ErrorMessage = errorMessage }; filterContext.Result = new JsonResult { Data = result, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; //Let the system know that the exception has been handled filterContext.ExceptionHandled = true; }
public override void OnResultExecuting(ResultExecutingContext filterContext) { if (filterContext.Result is JsonResult) { var result = filterContext.Result as JsonResult; var data = result.Data; ApiResultEntity entity = new ApiResultEntity(); entity.Status = ApiStatusEnum.Success.ToString(); entity.Data = data; result.Data = entity; } }