Просто подумал, что немного верну, так как я нашел здесь много решений для stackoverflow, но еще не опубликовал ответ (будучи новичком в asp.net mvc):
Реализовав менюВ качестве частичного представления, отображаемого главной страницей моего сайта, я хотел, чтобы контроллер меню выделил «выбранный» пункт меню, чтобы дать пользователю представление о том, где они находятся на сайте.Проблема заключалась в том, что при рендеринге меню текущие маршрутизированные данные относятся к самому меню, а не к главной странице контента.Следовательно, как контроллер меню узнает, какой пункт меню выделить?Я думал, что мое решение было довольно изящным, но, возможно, у вас будут другие предложения:
public class NavController : Controller
{
private string parentAction { get; set; }
private string parentController { get; set; }
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
base.OnActionExecuting(ctx);
parentAction = ctx.ParentActionViewContext.Controller.ControllerContext.RouteData.Values["action"].ToString();
parentController = ctx.ParentActionViewContext.Controller.ControllerContext.RouteData.Values["controller"].ToString();
}
Этот класс генерирования меню теперь может использовать «parentAction» и «parentController», чтобы выделить пункт меню, который соответствует «родительская страница, то есть страница, которую пользователь просматривает в основной части содержимого мастера.