由于我的应用程序有侧边栏菜单,每次我想加载视图时都会通过xml动态构建,我需要传递所有这些参数。
ViewData["mainItems"] = navigation.getItems();
ViewData["controller"] = controller;//this is just a string with the name of my controller
我怎样才能避免每次都这样做但是参数不断被检索和传递?
答案 0 :(得分:1)
您实际上不需要传递控制器名称。你在viewContext中有它。
答案 1 :(得分: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);
}