Как определить текущее действие контроллера в карте сайта mvc? - PullRequest
0 голосов
/ 13 июля 2010

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

Я использую ASP.NET MVC1 с картой сайта.Используя HTML-помощник, я создаю навигационное меню, которое выделяет текущий выбранный параметр на странице Site.Master.Обычный сценарий и легко сделать с помощью:


foreach ( SiteMapNode subnode in node.ChildNodes) {
    if (SiteMap.CurrentNode == subnode) { //got ourselves the current here }
}

Это все прекрасно, но моя проблема в том, что у меня есть 1 контроллер с несколькими действиями.Рассмотрим следующий сценарий:

Учетные записи * клиенты * поставщики * поддержка

Все они будут в моем AccountController, выполняя поиск, идентичный, но с другим значением AccountTypeId.

Когда я читаю значение SiteMap.CurrentNode, оно дает мне просто информацию о том, что я использую AccountController, но не о том, какое действие я вызвал.Я перепробовал множество вещей, но не могу получить запрошенное действие.

Надеюсь, я дал достаточно информации, чтобы дать вам представление о сценарии.Если вам нужно что-нибудь еще, дайте мне знать.

Заранее спасибо:)!

PS: Отправлено в asp.net, так как около 2 месяцев здесь на работе, так что терпите меня.Опыт программирования здесь, но знания C # / .NET в основном равны тому, что могут предоставить мне Google или коллеги.

РЕДАКТИРОВАТЬ: - В ответ на ответ Боба ниже -

IЯ сталкивался с проектом SiteMap Provider, однако я не уделил ему много внимания, так как я использую MVC1, и он нацелен на MVC2.Кроме того, я не совсем уверен, используем ли мы его уже или нет ... В конце концов, у меня есть карта сайта ... И человек, который мог бы сказать мне в офисе, злится напляж где-нибудь на ближайшие 2 недели: (

Ответы [ 2 ]

0 голосов
/ 13 июля 2010

вы можете попробовать этот поставщик ASP.NET MVC SiteMap первый результат при поиске mvcsitemap в google

0 голосов
/ 13 июля 2010

Вы смотрели на RouteData.Values ​​["действие"].Это немного сложно, если это поможет.

...