如何通过httphandler返回嵌入式资源.aspx页面?

本文关键字:aspx 页面 资源 嵌入式 何通过 httphandler 返回 | 更新日期: 2023-09-27 18:03:06

Pop quiz hot shots…

我有一个Visual Studio 2010 . net 4解决方案,有两个项目,第一个项目是一个c#类库,包含一个httphandler和一个。aspx页面。.aspx页面的构建动作被设置为"Embedded Resource"

第二个项目是一个asp.net web应用程序,它引用了第一个项目。http处理程序是在web.config中连接的。

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

谢谢,詹姆斯。

如何通过httphandler返回嵌入式资源.aspx页面?

也许这是相关的:http://www.west-wind.com/weblog/posts/2007/Jul/23/Loading-an-ASPNET-Page-Class-dynamically-in-an-HttpHandler

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

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

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

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