/// <summary> /// 向客户端输出JSON格式的返回值 /// </summary> /// <param name="WebApi_Result">返回的WebApi_Result实体</param> public string ResponseJsonResult(WebApi_Result WebApi_Result) { WebApi_Result.msg = WebApi_Result.msg == null ? Globle_Message : WebApi_Result.msg; string strJsonResult = new JavaScriptSerializer().Serialize(WebApi_Result); //Response.Write(strJsonResult); return(strJsonResult); }
public string ResponseJsonResult(object objResult = null, object Message = null) { WebApi_Result result = new WebApi_Result() { code = objResult == null ? 7 : 0, data = objResult, msg = Message }; return(ResponseJsonResult(result)); }
/// <summary> /// 通用的文件上传方法 /// </summary> /// <returns></returns> public string SaveFiles() { return(base.ExecuteActionJsonResult("文件上传", () => { WebApi_Result result = new WebApi_Result() { code = 1 }; foreach (string fileName in Request.Files) { HttpPostedFileBase file = Request.Files[fileName]; string postFileName = file.FileName; string newFileName = DateTime.Now.ToFileTime() + postFileName.Substring(postFileName.LastIndexOf(".")), savePath = "~/Content/UserFiles/" + DateTime.Now.ToString("yyyy-MM-dd") + "/"; if (!string.IsNullOrWhiteSpace(Request["type"])) { if (!string.IsNullOrWhiteSpace(Request["curid"])) { newFileName = Request["curid"] + postFileName.Substring(postFileName.LastIndexOf(".")); } else { Assembly assembly = Assembly.Load("EMR.Services"); var type = assembly.GetType("EMR.Services.SystemSupport." + Request["type"] + "Service"); ISerialPrimaryKey iSerPK = (ISerialPrimaryKey)Activator.CreateInstance(type); if (type != null && iSerPK != null) { newFileName = iSerPK.GetPrimaryId() + postFileName.Substring(postFileName.LastIndexOf(".")); } } savePath = "~/Content/UserFiles/" + Request["type"] + "/"; } if (!Directory.Exists(Request.MapPath(savePath))) { Directory.CreateDirectory(Request.MapPath(savePath)); } file.SaveAs(Request.MapPath(savePath + newFileName)); result.code = 0; result.data = savePath.Replace("~/", "") + newFileName; } return result; })); }
/// <summary> /// 带WebApi_Result实体返回值的业务处理委托。(用于非跨域的AJAX接口调用) /// </summary> /// <param name="actionName">操作名称</param> /// <param name="handler">业务处理委托</param> public string ExecuteActionJsonResult(string actionName, UI_Business_Logic_JsonResult_Handler handler) { try { var _WebApi_Result = new WebApi_Result() { code = 13, msg = "登录凭证失效,获取数据失败!" }; if (IsTokenAuthorized) { _WebApi_Result = handler(); _WebApi_Result.msg = _WebApi_Result.msg == null ? actionName + "成功!" : _WebApi_Result.msg; _WebApi_Result.code = _WebApi_Result.code == null ? 0 : _WebApi_Result.code; } return(ResponseJsonResult(_WebApi_Result)); } catch (Exception err) { if (err.Message.Contains("ORA-12570")) { ExecuteActionJsonResult(actionName, handler); } string strErrorContent = actionName + "失败!-------" + err.Message; if (string.IsNullOrWhiteSpace(Request["token"].GetUserToken().UserId)) { strErrorContent += "----------用户ID:" + Request["token"].GetUserToken().UserId; } FileLog.AddErrorLog(strErrorContent); Globle_Message = strErrorContent; return(ResponseJsonResult(new WebApi_Result() { code = 6 })); } finally { //Response.End();//Response.End必须放在finally里面执行,否则会报“正在中止线程”的错误 http://www.cnblogs.com/jintianhu/archive/2011/02/16/1952833.html } }