Asp.net mvc 在ASP.NET MVC的页面_PreInit中设置母版页?

Asp.net mvc 在ASP.NET MVC的页面_PreInit中设置母版页?,asp.net-mvc,Asp.net Mvc,在一个普通的ASP.NET应用程序中,我有一个httpModule,在其中我处理PreRequestHandlerExecute事件,并钩住页面的PreInit事件,以便通过编程设置母版页。但是,当应用程序是ASP.NET MVC时,我的httpModule不再执行它应该执行的操作,因为PreRequestHandlerExecute中的CurrentHandler的类型是System.Web.MVC.MvcHandler,而不是System.Web.UI.Page,因此挂接到页面的PreIni

在一个普通的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是否可能实现这一点?

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

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

受保护的无效页\u PreInit(对象发送方,事件参数e)
{
this.MasterPageFile=“Custom.Master”;
}

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

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

受保护的无效页\u PreInit(对象发送方,事件参数e)
{
this.MasterPageFile=“Custom.Master”;
}

这篇博客文章很有帮助


在控制器中,我确定所需的母版页(facebook应用程序、手机等),然后将母版页设置在其中,而不是页面本身。虽然马特的答案也适用,但看起来更干净。

这篇博文很有帮助

在控制器中,我确定所需的母版页(facebook应用程序、手机等),然后将母版页设置在其中,而不是页面本身。看起来更干净,尽管马特的答案也适用