在Page_PreInit中为ASP.NET MVC设置母版页?

时间:2009-10-07 21:59:47

标签: asp.net-mvc

在常规的ASP.NET应用程序中,我有一个httpModule,我在其中处理PreRequestHandlerExecute事件并挂钩到页面的PreInit事件,因此我可以以编程方式设置母版页。但是,当应用程序是ASP.NET MVC时,我的httpModule不再执行它想要做的事情,因为PreRequestHandlerExecute中的CurrentHandler是System.Web.Mvc.MvcHandler类型而不是System.Web.UI.Page,所以它不是这样的很明显要挂钩页面的PreInit事件。

我的问题:如何修改我的httpModule以编程方式设置ASP.NET MVC视图页面的母版页?这是否可以在PreRequestHandlerExecute事件中使用MvcHandler?

2 个答案:

答案 0 :(得分:0)

只需将其添加到您的aspx视图中即可。

<script runat="server">
    protected void Page_PreInit(Object sender, EventArgs e)
    {
        this.MasterPageFile = "Custom.Master";
    }
</script>

答案 1 :(得分:0)

此博客文章非常有用。

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

在控制器中,我确定所需的母版页(facebook app,mobile等),然后在那里设置母版页而不是页面本身。虽然马特的回答也有效,但看起来更干净。