Текущий активный контроллер / Action MVC .NET - PullRequest
0 голосов
/ 14 марта 2012

В приложении MVC / C # как программно узнать, какой контроллер и действие выполняется без разбора запроса URL? Есть ли способ?

Цель в том, чтобы у меня была высокоуровневая навигация, которая в основном отображается с помощью CSS в Site.Master, и я хотел бы изменить стиль при повторном отборе пункта меню, который был выбран последним ... просто пытаюсь дать пользователю контекст относительно того, где он находится на сайте. Может быть, я поступаю неправильно?

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Вы можете получить его из значений маршрута. Например, если вы находитесь внутри пользовательского HtmlHelper:

public static IHtmlString MyHelper(this HtmlHelper htmlHelper)
{
    var rd = htmlHelper.ViewContext.RouteData;
    var action = rd.GetRequiredString("action");
    var controller = rd.GetRequiredString("controller");
    ...
}
0 голосов
/ 14 марта 2012

Самый простой способ - добавить параметр с именем action в функцию контроллера, связыватель модели свяжет с ним имя действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...