如何为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;
        }
    }

 

posted on 2020-02-05 00:21  漫思  阅读(242)  评论(0编辑  收藏  举报

导航