Какое действие выполняется во время метода расширения HtmlHelper - PullRequest
4 голосов
/ 01 декабря 2008

Я работаю над генерирующим меню методом расширения HtmlHelper. Этот метод должен знать, какое действие выполняется. Поэтому, если выполняется Home / Index, метод расширения будет показывать все ссылки на другие действия, которые «скоординированы». В некотором смысле, все, что мне нужно знать во время выполнения действия Index для контроллера Home, это имя контроллера и имя выполняемого действия, чтобы можно было выполнять другую логику. Возможно ли это?

Ответы [ 3 ]

3 голосов
/ 01 декабря 2008

Попробуйте это

var action = HtmlHelper.ViewContext.RouteData.Values["action"];
var controller = HtmlHelper.ViewContext.RouteData.Values["controller"];
0 голосов
/ 19 февраля 2009

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

Так что уточните при выполнении АОП, где я разрешаю доступ к данному действию, только если у пользователя есть права на это действие.

Проблема с использованием строки для определения того, какое правило проверять, состоит в том, что если какой-то разработчик переименует действие, я не получу ошибку компиляции, сообщающую, что мое правило нарушено.

0 голосов
/ 01 декабря 2008

Я делаю нечто подобное с атрибутом фильтра. Вы можете получить название действия следующим образом:

filterContext.RouteData.Values["action"].ToString();

Я использую это для отключения пункта меню, который представляет текущий контекст.

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