2012-01-05 2 views
0

Я хочу сделать некоторую суб-навигацию по тестовому проекту, который я делаю для своих собственных знаний, и я хотел, возможно, сделать вспомогательную навигацию в частичном режиме и вызвать Render на частичном просто на основе используемого контроллера. Я пытался выяснить, как это делают другие, и какой лучший способ определить контроллер будет изнутри_Layout.cshtml?MVC3 вложенная главная страница на основе только текущего контроллера

Опять же, у меня нет ничего конкретного, что я использую для этого (так что нет образцов кода). Это просто для моих собственных знаний и не знало, что лучший способ добиться этого. На работе мы делаем что-то подобное, но это строго CSS, и мне это не нравится лично ...

Я знаю о рентабельности, и я использую его на веб-сайте, но мне любопытно, используется для определения отображения навигации и средств для этого ... Уже поздно, и я устал, поэтому, надеюсь, это имеет смысл. Если он не спрашивает, пожалуйста!

ответ

1

Какой лучший способ определить контроллер будет изнутри_Layout.cshtml?

Вы могли бы принести текущий контроллер и действие от RouteData:

@{ 
    var controller = ViewContext.RouteData.GetRequiredString("controller"); 
    var action = ViewContext.RouteData.GetRequiredString("action"); 
} 

Ваш вопрос очень расплывчато, так что трудно обеспечить вам более конкретные детали, но и для создания навигационных меню вы также можете использовать пользовательские html-помощники или даже целые дочерние действия (Html.Action помощник) в зависимости от сложности.

+0

Спасибо. Из быстрого теста я просто сделал это именно то, что искал. Я пытался найти имя контроллера без необходимости синтаксического анализа URL. Кроме того, жаль насчет того, что я был расплывчатым, я действительно устал и беспокоился, что может случиться, но хотел задать вопрос, пока я думал об этом. @Дарин Димитров – Jared