Я добавляю маршрутизацию ASP.NET в старое приложение веб-форм. Я использую пользовательский HttpHandler
для обработки всего. В некоторых ситуациях я хотел бы сопоставить определенный путь обратно с файлом aspx
, поэтому мне нужно просто передать управление обратно HttpHandler по умолчанию для asp.net.
Самое близкое, что я получил, это
public void ProcessRequest(HttpContext context) {
// .. when we decide to pass it on
var handler = new System.Web.UI.Page();
handler.ProcessRequest(context);
MemoryStream steam = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
handler.RenderControl(htmlWriter);
// write headers, etc. & send stream to Response
}
Это ничего не делает, ничего не выводится в поток. Документация MS для System.Web.UI.Page (как IHttpHandler) говорит что-то вроде «не вызывайте метод ProcessRequest. Он предназначен для внутреннего использования».
Оглядываясь вокруг, кажется, что вы можете сделать это с помощью MVC, например. : MvcHttpHandler, похоже, не реализует IHttpHandler
Есть еще такая вещь System.Web.UI.PageHandlerFactory
, который, по-видимому, просто создает обработчик страницы для файла aspx, но он является внутренним, и я не могу использовать его напрямую.
Эта страница: http://msdn.microsoft.com/en-us/library/bb398986.aspxотносится к «обработчику asp.net по умолчанию», но не определяет класс и не дает никаких указание на то, как его можно использовать.
Есть идеи, как это сделать? Это возможно?