2008-12-12 2 views
1

Что необходимо сделать, чтобы IHttpHandler имел существующую страницу .aspx для обработки запроса? Я хотел бы скомпилировать файл .aspx в IHttpHandler, а затем обработать запрос. Существует метод PageParser.GetCompiledPageInstance, однако в документации он указывает, что он не предназначен для прямого использования кода. Я знаю, что файлы apsx могут быть автоматически перенаправлены или выполняться RewritePath, однако я хотел бы иметь ссылку на объект для обработчика.ASP.net IHttpHandler для выполнения .aspx-файла

ответ

3

Вот один быстрый n'грязный способ сделать это:

var virtualPath = "~/foo/bar.aspx" 
var output = HttpContext.Current.Response.Output; 

// Get the compiled page type (i.e. foo_bar_aspx) 
Type controlType = BuildManager.GetCompiledType(virtualPath); 

// "new()" it up 
var pageInstance = Activator.CreateInstance(controlType); 

// Execute it 
HttpContext.Current.Server.Execute(pageInstance, output, true); 
Смежные вопросы