Установка главной страницы в Page_PreInit для ASP.NET MVC? - PullRequest
1 голос
/ 08 октября 2009

В обычном приложении ASP.NET у меня есть httpModule, где я обрабатываю событие PreRequestHandlerExecute и подключаюсь к событию PreInit страницы, чтобы я мог программно установить мастер-страницу. Однако, когда приложение является ASP.NET MVC, мой httpModule больше не делает то, что должен делать, потому что CurrentHandler внутри PreRequestHandlerExecute имеет тип System.Web.Mvc.MvcHandler, а не System.Web.UI.Page, поэтому это не так очевидно зацепиться за событие PreInit страницы.

Мой вопрос: как мне изменить мой httpModule для программной установки главной страницы для страницы просмотра ASP.NET MVC? Возможно ли это даже с MvcHandler в событии PreRequestHandlerExecute?

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

Эта запись в блоге была весьма полезной.

http://codeofrob.com/archive/2009/11/01/dynamically-switching-between-master-pages-in-asp.net-mvc.aspx

В контроллере я определяю необходимую главную страницу (приложение на Facebook, мобильное устройство и т. Д.), Затем устанавливаю главную страницу там, а не на самой странице. Кажется чище, хотя ответ Мэтта тоже работает.

0 голосов
/ 19 марта 2010

Просто добавьте это к вашему представлению aspx.

<script runat="server">
    protected void Page_PreInit(Object sender, EventArgs e)
    {
        this.MasterPageFile = "Custom.Master";
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...