В моем приложении я создаю динамическое меню. Меню заполняется в зависимости от контроллера, для которого он вызван. Например, в одном из моих имен контроллеров используется организация. Для того, чтобы заполнить меню для этого я называю этоПолучить имя контроллера в asp.net mvc
@Html.Action("Menu","Site", new { calledForController = "Organization", oId = @Model.Id })
Все работает красиво и гладко, но вопрос, который я испытываю, когда я имею больше взглядов, что я должен поместить эту строку в каждом представлении. То, что я ищу, - это способ получить текущий контроллер и имя действия из данных маршрута, чтобы мне не приходилось вызывать это на каждом представлении.
Идеальным решением было бы написать что-то вроде этого
@Html.Action("Menu","Site")
в моей _Layout.cshtml, а затем в меню списка меню контроллера заселить в зависимости от того, где он был вызван.
Если я пишу
this.ControllerContext.RouteData.Values["controller"].ToString();
в моем меню действия контроллера сайта Я всегда получать сайт как мое имя контроллера. Любые мысли по этому поводу?