Я добавляю маршрутизацию 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 по умолчанию", но не идентифицирует класс или не дает никаких указаний о том, как его можно было бы использовать.
Любые идеи о том, как я могу это сделать? Возможно ли это?