在常规的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?
答案 0 :(得分:0)
只需将其添加到您的aspx视图中即可。
<script runat="server">
protected void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "Custom.Master";
}
</script>
答案 1 :(得分:0)
此博客文章非常有用。
在控制器中,我确定所需的母版页(facebook app,mobile等),然后在那里设置母版页而不是页面本身。虽然马特的回答也有效,但看起来更干净。