我可以使用System.Reflection在另一個獨立的aspx頁面加載一個獨立的aspx頁面嗎?使用System.Reflection加載ASP.NET 2.0 aspx頁面?
我正在使用ASP.NET 2.0網站項目模型。
我可以使用System.Reflection在另一個獨立的aspx頁面加載一個獨立的aspx頁面嗎?使用System.Reflection加載ASP.NET 2.0 aspx頁面?
我正在使用ASP.NET 2.0網站項目模型。
嘗試使用BuildManager.CreateInstanceFromVirtualPath。示例用法:
Page p = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(Page))
這回答了這個具體的問題,雖然根據您的意見,我不確定這是你真正想要的。
不知道如何使用Reflection來完成它,這可能是可能的,但是您可以使用HttpContext.Server.Execute()將aspx或asp頁面的輸出捕獲到字符串編寫器。
我已經使用它來渲染一些複雜的電子郵件模板,但不知道這是否完全符合您的要求。
我採取了以下解決方案,它是我真正想要做的:
using System.Reflection;
using System.Web.Compilation;
Page p = BuildManager.CreateInstanceFromVirtualPath("~/mypage.aspx", typeof(Page)) as Page;
MethodInfo MyMethod = p.GetType().GetMethod("MyMethod");
MyMethod.Invoke(p, null);
如果從UI.Page的頁面背後的代碼繼承類,你可以用這樣的方式: 設置背景,以當前的HTTP上下文
Dim hndlr As IHttpHandler = PageParser.GetCompiledPageInstance("~/mypage.aspx", context.Server.MapPath("~/mypage.aspx"), CONTEXT)
Dim ipage As DerivedPage = DirectCast(hndlr, DerivedPage)
ipage.YourProperty= "Hello"
ipage.DoIt()
所以,你可以有強類型的值,如果你會改變你會被警告的方法的符號。
我檢查了「縮放問題」的定義,並發現這一點。 – Will 2008-12-17 23:21:18
我知道這不是最好的做法,但我正在嘗試從子aspx頁面更新父aspx頁面。我沒有找到任何想法。另見:http://stackoverflow.com/questions/375977/calling-a-parent-page-code-behind-method-from-a-child-page-code-behind-aspnet-2 – 2008-12-17 23:29:37