2009-07-02 2 views
4

В контроллере я могу определить, «я» контролирую вид или частичный вид?Detect View или PartialView в контроллере

У меня есть общий контроллер, который находится между любым контроллером и Controller, есть вещи, которые мне хотелось бы только, если это вид, а не частичный вид.

В идеале в protected override ViewResult View(...

+0

В каком сценарии вы бы этого не знали? – GalacticCowboy

+0

обновлен с дополнительной информацией – NikolaiDante

ответ

7

Проверить

ControllerContext.IsChildAction

в методе действия, или

filterContext.IsChildAction

в OnActionExecuted

+0

Очень приятная функция. Это экономит мне много обработки в моем коде, потому что у меня есть BaseController, который все мои контроллеры наследуют и в моем BaseController, я создаю в функции Initialize мои меню. В этом случае, когда у моего представления было 3 частичных представления, меню было построено 3 раза. Теперь я могу проверить, является ли IsChildAction ложным для построения меню, и все! Спасибо. – Samuel

1

Есть другой маршрут для каждого./home/about и/home/about/partial, которые оба направляются на один и тот же метод контроллера. В принципе, вместо того, чтобы пытаться обнюхивать вещи, EXPRESS это явно, через маршрут или параметр.

+0

Любые мысли о другом подходе к устаревшей базе кода? – NikolaiDante

+0

«наследие» с использованием ASP.NET MVC? Как ваш код уже устарел? –

+0

, потому что его огромные и я не причудливо устанавливаю что-то, что связано с изменением каждого маршрута в решении. – NikolaiDante

Смежные вопросы