Итак, позвольте мне сначала убедиться, что я вас правильно понимаю.
Пользователь нажмет на пункт меню, который перенесет его на другую страницу. И когда он попадает на эту страницу, вы хотите, чтобы меню отражало тот факт, что он находится на этой странице? Правильно?
Это не слишком сложно. Я предполагаю, что меню является частичным представлением, поэтому вы должны отобразить его примерно так:
<div id="menu">
<% Html.RenderPartial("Menu"); %>
</div>
Таким образом, представление уже будет знать, какой пункт меню вызвал его. Например, если пользователь нажимает на Widgets-> New, вы можете вернуть представление NewWidget.aspx, и он будет знать, что выделенным элементом меню является Widgets-> New. Таким образом, вы просто используете перегрузку для RenderPartial , чтобы указать имя или идентификатор элемента меню для выделения.
<div id="menu">
<% Html.RenderPartial("Menu", "newWidgetLink"); %>
</div>
Если это НЕ тот случай, когда представление уже знает, какой пункт меню выделить, вам нужно будет передать идентификатор пункта меню со ссылкой. Таким образом, ваша генерация ссылок будет выглядеть примерно так:
Html.ActionLink("Menu Item Text",
"Controller name goes here",
"Action name goes here",
new { menuItem = "menuItemId goes here" },
null
)
Тогда вашему действию нужно будет обработать этот параметр. Проще всего было бы взять параметр и добавить его в ViewData. Меню затем проверит в ViewData идентификатор для элемента MenuItem, который нужно выделить.