在HttpModule中渲染页面?

时间:2009-11-13 22:01:08

标签: asp.net httphandler httpmodule

任何人都知道如何在HttpModule中呈现一个aspx页面并将其流回浏览器?

3 个答案:

答案 0 :(得分:5)

您可以这样做:

Type page_type = BuildManager.GetCompiledType ("~/page.aspx");
Page page = (Page) Activator.CreateInstance (page_type);
page.ProcessRequest (Context);

答案 1 :(得分:3)

public void ProcessRequest(HttpContext context)
{
    using (var writer = new StringWriter())
    {
        context.Server.Execute("default.aspx", writer);
        context.Response.ContentType = "text/html";
        context.Response.Write(writer.GetStringBuilder().ToString());
    }
}

答案 2 :(得分:2)

最好的方法可能是使用URL重写将标准处理程序处理步骤重定向到要渲染的页面。类似的东西:

context.RewritePath("yourpage.aspx", false);

您可以从BeginRequest事件处理程序运行它。