2009-09-15 71 views
0

因为我的应用程序有一个边栏菜单,每次我通过xml动态构建我想加载一个视图我需要通过所有这些参数。有没有更好的方法可以做到这一点?在asp.net mvc

 ViewData["mainItems"] = navigation.getItems(); 
     ViewData["controller"] = controller;//this is just a string with the name of my controller 

我该如何避免每次都这样做,但参数不断被检索和传递?

+0

我不明白。你是否在每一个请求中设置ViewData,这就是你想要避免的? – 2009-09-15 19:35:48

回答

0

如果我明白你的问题是正确的,那么你可能想创建一个基类控制器,并让你的所有控制器从这个基控制器继承。然后重写OnActionExecuted事件,该事件在每个操作中被触发。

public class BaseController : Controller { 
    protected override void OnActionExecuted(ActionExecutedContext filterContext) { 
     ViewData["mainItems"] = navigation.getItems(); 
     ViewData["controller"] = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; 
     base.OnActionExecuted(filterContext); 
} 
相关问题