我有一个MVC项目,并且有一个侧边栏,我在其中显示一些用户信息。 我希望有一个方法调用生成此信息并填充ViewBag,以便我可以显示它。
据我所知,我可以使用Globals.asax的Application_BeginRequest方法,但它不允许我使用ViewBag。
我可以在哪里"插上"这个方法调用所以它在每个请求中调用,我可以填充ViewBag?
编辑:如果有更好的方式填充此信息,请告诉我
答案 0 :(得分:3)
您可以使用 ActionFilter :
public class IncludeSidebarValuesAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = filterContext.Controller as YourBaseController;
if (controller != null)
{
controller.ViewBag.YourInfo = LoadSideBarInfo();
}
}
}
然后,在你的控制器中你装饰这样的动作:
[IncludeSidebarValues]
public ActionResult YourAction(){
---
}
答案 1 :(得分:0)
你可以使用_Layout.cshtml,每次都会渲染它,所以每次都会执行你的方法。