Can I load an stand alone aspx page in another stand alone aspx page using System.Reflection?
I am using the ASP.NET 2.0 Web site project model.
Can I load an stand alone aspx page in another stand alone aspx page using System.Reflection?
I am using the ASP.NET 2.0 Web site project model.
Don't know about doing it using Reflection, which may well be possible, but you can capture the output of an aspx or asp page to a string writer using HttpContext.Server.Execute().
I have used this for rendering some complex email templates, but don't know if that is quite what you are after.
Try using BuildManager.CreateInstanceFromVirtualPath. Sample usage:
Page p = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(Page))
This answers this specific question, although, based on your comments, I'm not sure that this is what you really want.
I implemented the following solution and it is what I exactly want to do:
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);
If you have a inherited class from UI.Page for your code behind page, you could use this way: set CONTEXT to your current http context
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()
So you can have strong typed values and, if you'll change the sign of a method you'll be warned.
sir, i implemented the above code but its giving me exception at last line i mean at 'MyMethod.Invoke(p, null);' this line. (Object ref not set to ... )