如何为asp.net mvc的action上统一加viewbag,路由的过滤器
1、在项目中存在一些情况,需要为action加一些viewbag属性增强可维护性。
[TitleFooterAttribute] // GET: yewulingyu public ActionResult Index() { int toal = 0; List<GongSiYeWu> list = new BLL_GongSiYewu().Search(-1, -1, out toal, null); return View(list); }
然后我们看 TitleFooterAttribute的定义
/// <summary> /// 为ViewBag添加默认参数 /// </summary> public class TitleFooterAttribute : FilterAttribute, IResultFilter { public void OnResultExecuted(ResultExecutedContext filterContext) { } public void OnResultExecuting(ResultExecutingContext filterContext) { BLL_GongsiInfo bll = new BLL_GongsiInfo(); GongsiInfo info = bll.GetSingle(Guid.Parse(ConfigurationManager.AppSettings["GongsiID"])); filterContext.Controller.ViewBag.GongsiFooter = info.GongsiFooter; filterContext.Controller.ViewBag.GongsiName = info.GongsiName; filterContext.Controller.ViewBag.GongsiSearchDes = info.GongsiSearchDes; filterContext.Controller.ViewBag.GongsiSearchkey = info.GongsiSearchkey; filterContext.Controller.ViewBag.GongsiCultrue = info.GongsiCultrue; filterContext.Controller.ViewBag.GongsiShortName = info.GongsiShortName; filterContext.Controller.ViewBag.GongsiLogo = info.GongsiLogo; } }
漫思