有没有一种方法来创建一个可以在不同的视图中使用的全球ViewBag。
在我的应用程序的情况下,1)我已经使用了公司下拉时使用到_Layout.cshtml
页。
2)对于下拉我通过使传递值ViewBag.Company
在每个动作。
我想该解决方案::
1)全球ViewBag.Company具有我们从每一个动作传递列表。
2)然后将不会有任何需要在每一个Action创建ViewBag.Company。
这个问题可能是不同的东西。 但是,我们如何才能做到这一点?
有没有一种方法来创建一个可以在不同的视图中使用的全球ViewBag。
在我的应用程序的情况下,1)我已经使用了公司下拉时使用到_Layout.cshtml
页。
2)对于下拉我通过使传递值ViewBag.Company
在每个动作。
我想该解决方案::
1)全球ViewBag.Company具有我们从每一个动作传递列表。
2)然后将不会有任何需要在每一个Action创建ViewBag.Company。
这个问题可能是不同的东西。 但是,我们如何才能做到这一点?
在现实世界中,你必须在你的架构错误。
public class CustomNameAttribute : ActionFilterAttribute
{
public void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.Controller.ViewBag.Company = "Company";
}
}
我认为你需要使用授权和使用属性用户
添加一个全球性的过滤器,增加了本公司的观点袋。
基本上,创建一个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());
}
}