C# 动态页面创建.aspx

C# 动态页面创建.aspx,c#,asp.net,C#,Asp.net,我有一个IHttpModule动态提供.aspx页面,这样我就可以将它们打包到一个DLL中,并将其放入现有的网站中,提供我的页面 我有一个从System.Web.UI.Page派生的类MyPage,它有一个.aspx、.aspx.cs和一个aspx.designer.cs文件 当我尝试实例化类MyPage myNewPage=MyPage时,所有子控件都为null 然后,我尝试在IHttpModule的BeginRequest事件中使用Server.ExecutemyNewPage呈现该页面输出

我有一个IHttpModule动态提供.aspx页面,这样我就可以将它们打包到一个DLL中,并将其放入现有的网站中,提供我的页面

我有一个从System.Web.UI.Page派生的类MyPage,它有一个.aspx、.aspx.cs和一个aspx.designer.cs文件

当我尝试实例化类MyPage myNewPage=MyPage时,所有子控件都为null

然后,我尝试在IHttpModule的BeginRequest事件中使用Server.ExecutemyNewPage呈现该页面输出

我知道我可以编译页面并使用reflector来获得构建的已编译类,但是有更干净的方法吗

或者是一个更好的方法来完成我的工作

谢谢,
古西

我认为这是不可能的。您不能像任何其他对象一样只是实例化页面。您需要的可能是一个VirtualPathProvider。

我不确定这是最好的解决方案,但您可以将所有的aspx页面作为资产嵌入到dll中。根据请求,从嵌入式资源中提取aspx,如果尚未发生,则写入磁盘


可能有一种方法可以从嵌入式资源提供aspx,而无需实际写入磁盘,但我不确定。

aspx与ASP.NET运行时有着密切的关系。我不认为实例化它而只是调用构造函数是一个好主意。您可以做的是使用空的标准aspx并将代码移动到用户控件-ascx


那些可以使用LoadControl方法动态加载的组件

为什么需要自己的HttpModule来为您的aspx提供服务?我的希望是将我的所有.aspx页面放入一个程序集,并分发一个.DLL,以便可以使用我的页面。因此,在我的HttpModule中,我检查传入路径,例如/admin/something.aspx。。。/admin路径中的任何内容都是从我编译的程序集中提取的,并且在最终用户asp.net站点中不存在。另外,动态编译呢?感谢您的回复。实际上我希望有一个与LoadControl非常相似的东西,但是有一个页面。我可能会走这条路,我只是希望有一个更干净更简单的解决方案。