是否可以在呈现_layout.cs文件之前设置ViewBag
属性?我需要ViewBag
来包含一个可用于呈现_layout的列表。我怎样才能做到这一点?
我听说过StartUp.cs,但我认为OWIN的用途并不能在这里使用,这是正确的吗?
答案 0 :(得分:1)
您可以创建自定义ActionFilter
来设置ViewBag
属性。
public class CustomViewBagActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// either inject a property or use the filterContext
//to get what data you need to use to set the ViewBag
dynamic ViewBag = filterContext.Controller.ViewBag;
ViewBag.Test = "test";
}
}
然后您可以在FilterConfig.cs
:
filters.Add(new CustomViewBagActionFilter());
或者你可以用它来装饰你的控制器或动作:
[CustomViewBagActionFilter]
public class HomeController : Controller
然后,您可以访问_Layout.cs文件中的ViewBag属性。只需确保检查null并根据ViewBag数据进行相应处理。