/// <summary> /// Creates a new <see cref="JsonErrorResult"/> instance containing details from the provided <paramref name="exception"/> and <paramref name="message"/>. /// </summary> /// <param name="exception">The exception that occurred.</param> /// <param name="message">An error message to include in the result. Can be null.</param> public static JsonErrorResult Create(Exception exception, string message) { Exception objExc = exception; string strJsonMessage = message; string strExcMessage = null; JsonErrorResult result = new JsonErrorResult(); if (objExc != null) { // construct the exception message as a concatenated string of all inner exceptions strExcMessage = objExc.Message; while (objExc.InnerException != null) { objExc = objExc.InnerException; strExcMessage = string.Format("{0}: {1}", strExcMessage, objExc.Message); } } // if an explicit error message hasn't been defined if (strJsonMessage == null) { // use the exception message(s) as the error message strJsonMessage = strExcMessage; } // construct the JSON error result package if (objExc != null) { result.Exception = exception.GetType().ToString(); result.ExceptionMessage = strExcMessage; result.StackTrace = exception.StackTrace; } result.Message = strJsonMessage; return(result); }
/// <summary> /// Generates a <see cref="JsonResult"/> containing a Json serialized instance /// of <see cref="JsonErrorResult"/> that includes the <paramref name="message"/> and /// details from the <paramref name="exception"/>. /// </summary> /// <param name="message">The error message.</param> /// <param name="exception">An exception. Can be null.</param> /// <returns></returns> protected JsonResult JsonError(string message, Exception exception) { return(Json(JsonErrorResult.Create(exception, message), JsonRequestBehavior.AllowGet)); }