private void BeginInvoke(HttpContext context, WebHttpController iController) { //界面传值到后台 iController.ViewResult = ""; iController.JsonResult = ""; iController.sessionData = new System.Collections.Generic.Dictionary <string, object>(); iController.PutOutData = new System.Collections.Generic.Dictionary <string, object>(); iController.ClearKey = new System.Collections.Generic.List <string>(); iController.ParamsData = new System.Collections.Generic.Dictionary <string, string>(); iController.FormData = new System.Collections.Generic.Dictionary <string, string>(); iController.ViewData = new Dictionary <string, object>(); if (context.Request.Params != null)//获取Param值 { for (int i = 0; i < context.Request.Params.Count; i++) { string key = context.Request.Params.Keys[i]; if (key != null && key != "") { iController.ParamsData.Add(key, context.Request.Params[key].ToString()); } if (key == "ASP.NET_SessionId")//过滤Web应用服务参数 { break; } } } if (context.Request.Form != null)//获取Form值 { for (int i = 0; i < context.Request.Form.Count; i++) { string key = context.Request.Form.Keys[i]; if (key != null && key != "") { iController.FormData.Add(key, context.Request.Form[key].ToString()); } } } if (context.Session.Count > 0)//Session数据传入后台 { for (int i = 0; i < context.Session.Count; i++) { if (iController.sessionData.ContainsKey(context.Session.Keys[i].ToString())) { iController.sessionData.Remove(context.Session.Keys[i].ToString()); } iController.sessionData.Add(context.Session.Keys[i].ToString(), context.Session[i]); } } }
/// <summary> /// 执行命令 /// </summary> public void CmdInvoke(HttpContext context) { WebHttpController controller = ControllerHelper.CreateController(ControllerName); controller.context = context; BeginInvoke(context, controller); MethodInfo mi = ControllerHelper.CreateMethodInfo(ControllerName, MethodName, controller); //获得执行方法 mi.Invoke(controller, null); //带参数方法的调用并返回值 EndInvoke(context, controller); ControllerHelper.ControllerWrite(controller); }
private void EndInvoke(HttpContext context, WebHttpController iController) { //后台传出的数据重新绑定给Session if (iController.PutOutData != null && iController.PutOutData.Count > 0) { //Session.Clear();//清除所有Session for (int i = 0; i < iController.PutOutData.Count; i++) { context.Session[iController.PutOutData.ToArray()[i].Key] = iController.PutOutData.ToArray()[i].Value; } } //后台传出要清除的Session if (iController.ClearKey != null) { for (int i = 0; i < iController.ClearKey.Count; i++) { context.Session.Remove(iController.ClearKey[i]); } } }