是否有办法创建可在不同视图中使用的 Global ViewBag 。
在我的应用场景中,
1)我使用了用于_Layout.cshtml
页面的 DropDown for Company 。
2)对于Dropdown,我通过在每个动作中ViewBag.Company
传递Value。
我想要解决方案::
1)Global ViewBag.Company具有我们从每个操作传递的List。
2)然后就不需要在每个Action中创建ViewBag.Company。
这个问题可能有所不同。 但是我们怎样才能做到这一点?
答案 0 :(得分:0)
在现实世界中,你的架构存在错误。
public class CustomNameAttribute : ActionFilterAttribute
{
public void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.Controller.ViewBag.Company = "Company";
}
}
我认为您需要使用授权和使用属性用户
答案 1 :(得分:0)
添加一个全局过滤器,将公司添加到视图包中。
基本上创建一个actionfilter:
public class CompanyFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.ViewBag.Company = "MyCompany";
}
}
全球注册
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CompanyFilter()); // Add this line
filters.Add(new HandleErrorAttribute());
}
}