【问题标题】:How do you return an embedded resource .aspx page via a httphandler?如何通过 httphandler 返回嵌入式资源 .aspx 页面?
【发布时间】:2011-07-24 04:43:15
【问题描述】:

流行测验热门镜头...

我有一个带有 2 个项目的 Visual Studio 2010 .NET 4 解决方案,第一个项目是一个 c# 类库,其中包含一个 httphandler 和一个 .aspx 页面。 .aspx 页面的构建操作已设置为“嵌入式资源”。

第二个项目是一个引用第一个的 asp.net Web 应用程序。 httphandler 连接在 web.config 中。

我希望 httphandler 为嵌入的 .aspx 页面提供服务。我该怎么做?

谢谢, 詹姆斯

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:
    【解决方案2】:

    .aspx 只是 .NET 中一种特殊的 HttpHandler。不要忘记这一点。 因此,.aspx 文件(ASP.NET 网页)实际上已经实现了 IHttpHandler 并且它们具有 ProccessRequest 方法。有两种方法可以做到这一点:

    1. 基于 Web 窗体和标记与代码隐藏的动态编译特性,如果您希望页面的标记动态编译并被执行,您必须提取页面(通过代码)并将其保存在磁盘。此提取过程可以在 Applciation_Start 事件上进行。
    2. 如果您不喜欢提取方法,请不要忘记您可以完全删除标记并在代码隐藏中执行所有操作(就像 PHP 或旧的 ASP 或 ASP.NET MVC)。还要记住,从 OOP 的角度来看,您的页面实际上是一个 。因此只需在您的 HttpHandler 中实例化它并调用它的 ProcessRequest 方法,将当前的 HttpContext 传递给它。

    【讨论】:

      【解决方案3】:

      我这样做的方式是通过 VirtualPathProvider,而不是处理程序。您可以设置和注册一个虚拟路径提供程序,以提供来自嵌入式资源(或数据库、Web 服务或您能想到的任何其他内容)的页面。

      http://support.microsoft.com/kb/910441

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 2011-02-02
        • 2012-01-23
        相关资源
        最近更新 更多