public ActionResult Detail(Guid?id) { if (id == null) { return(Content("非法参数")); } var viewModel = new V_HaviorVM(); services.Command((db) => { Mapper.Initialize(c => c.CreateMap <V_Havior, V_HaviorVM>()); viewModel = Mapper.Map <V_HaviorVM>(db.Queryable <V_Havior>().SingleOrDefault(u => u.HaviorID == id)); }); return(View(viewModel)); }
public override void OnResultExecuting(ResultExecutingContext filterContext) { if (filterContext.Result is ViewResult || filterContext.Result is PartialViewResult) { var _area = filterContext.RouteData.DataTokens["area"]; if (filterContext.Result is ViewResult || filterContext.Result is PartialViewResult) { if (_area != null && Keys.AccessVerifyAreas.Any(u => u.ToLower() == _area.ToString().ToLower())) { var _controller = filterContext.RouteData.Values["controller"].ToString(); var _action = filterContext.RouteData.Values["action"].ToString(); var _httpMethod = filterContext.HttpContext.Request.HttpMethod; var key = (_area.ToString() + "_" + _controller + "_" + _action + "_" + _httpMethod).ToLower(); var viewModel = new V_HaviorVM(); var buttonlist = new List <V_ButtonVM>(); var moduleList = new List <V_ModuleVM>(); if (!CacheManager.Contains(key)) { var cfg = new MapperConfigurationExpression(); cfg.CreateMap <V_Havior, V_HaviorVM>(); cfg.CreateMap <V_Module, V_ModuleVM>(); cfg.CreateMap <V_Button, V_ButtonVM>(); Mapper.Initialize(cfg); using (var services = new DbServices()) { services.Command((db) => { viewModel = Mapper.Map <V_HaviorVM>(db.Queryable <V_Havior>().SingleOrDefault(u => u.Area == _area.ToString() && u.Controller == _controller.ToLower() && u.Action == _action.ToLower() && u.HttpMethod == _httpMethod.ToUpper())); if (viewModel != null) { moduleList = Mapper.Map <List <V_ModuleVM> >(db.Queryable <V_Module>().Where(c => true).ToList()); buttonlist = Mapper.Map <List <V_ButtonVM> >(db.Queryable <V_Button>().Where(b => b.HaviorID == viewModel.HaviorID && b.Enable == true).OrderBy(u => u.Sort).OrderBy(u => u.SerialNo).ToList()); } }); } if (viewModel != null) { // 生成面包屑导航 var crumbHtml = string.Empty; CreateCrumbs(moduleList, viewModel.ModuleID, ref crumbHtml); viewModel.Crumbs = crumbHtml + "<label class=\"backend-crumbs-separator\">/</label>\r\n<a href=\"" + viewModel.Url + "\" title=\"" + viewModel.Name + "\">" + viewModel.Name + "</a>"; // 生成列表按钮 viewModel.SelectButtons = CreateSelectButtons(buttonlist); // 生成表单按钮 viewModel.FormButtons = CreateFormButtons(buttonlist); CacheManager.Set(key, viewModel); } } else { viewModel = CacheManager.Get <V_HaviorVM>(key); } var result = filterContext.Result; if (result is ViewResult) { var vresult = result as ViewResult; vresult.ViewData[Keys.HaviorInfoInjectionKey] = viewModel == null ? new V_HaviorVM() : viewModel; filterContext.Result = vresult; } else if (result is PartialViewResult) { var presult = result as PartialViewResult; presult.ViewData[Keys.HaviorInfoInjectionKey] = viewModel == null ? new V_HaviorVM() : viewModel; filterContext.Result = presult; } } } } }