Я использую следующее, чтобы получить текущий контроллер и действие в asp.net MVC3:
var currentAction = routeData.GetRequiredString("action");
var currentController = routeData.GetRequiredString("controller");
Это прекрасно работает. Однако, если я вызываю это из частичного представления, которое вызывается из моего макета, в качестве текущего контроллера возвращается "Макет". Это, конечно, правильное поведение, но есть ли способ доступа к имени родительского контроллера?
Изменить для дальнейшего уточнения:
Я вызываю свой контроллер меню и частичный вид из _Layout.cshtml:
@Html.Action("Menu", "Layout")
Затем изнутри этого частичного представления меню я вызываю код, который возвращает текущее действие и контроллер.