Есть ли лучший способ, которым я могу это сделать? в asp.net mvc - PullRequest
0 голосов
/ 15 сентября 2009

, так как мое приложение имеет боковое меню, которое динамически создается через XML каждый раз, когда я хочу загрузить представление, мне нужно передать все эти параметры.

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

как я могу избежать этого каждый раз, когда параметры продолжают получать и передавать?

Ответы [ 2 ]

1 голос
/ 15 сентября 2009

Вам не нужно передавать имя контроллера. у вас есть это в viewContext.

См. Этот вопрос: Найдите, какой контроллер ASP.NET MVC в главном представлении

0 голосов
/ 15 сентября 2009

Если я правильно понимаю, в чем ваша проблема, то вы можете создать контроллер базового класса и сделать так, чтобы весь ваш контроллер наследовал от этого базового контроллера. Затем переопределите событие OnActionExecuted, которое запускается при каждом действии.

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