2010-06-16 4 views
1

Я хочу написать собственный обработчик HTTP в ASP.Net (я использую C# в настоящее время), который фильтрует все запросы, скажем, .aspx-файлов, а затем, в зависимости от имени страницы который поставляется с запросами, я перенаправляю пользователя на страницу.Общий HTTP-обработчик в ASP.Net

До сих пор я написал обработчик, который фильтрует «*», то есть все. Скажем, я получаю запрос на «Page.aspx» и хочу отправить пользователя в «AnotherPage.aspx». Поэтому я вызываю Redirect на этот ответ и передаю «AnotherPage.aspx» в качестве новой страницы. Проблема в том, что это еще раз вызовет мой обработчик, который ничего не сделает. Это оставит пользователя без ответа.

Итак, есть ли способ отправить запрос другим обработчикам (каскадное сообщение), как только я это рассмотрю?

Спасибо, Bruno

+4

Быть прагматичным - не могли бы вы просто использовать ASP.NET MVC или структуру маршрутизации, доступную сейчас в ASP.NET? –

+0

@Marc: Не могли бы вы предоставить некоторые ссылки на учебные пособия, которые показывали бы мне, как это сделать? –

+0

@Marc: Пожалуйста, задайте вопрос, чтобы я мог его принять. –

ответ

0

Поскольку Марк не предоставил полный Anwer, содержащий рекомендации по MVC, вот он идет, что я узнал:

ASP.Net MVC может сделать это. На самом деле для этой цели был разработан ASP.Net MVC: с MVC вы можете сопоставить различные ссылки на своем веб-сайте с тем же контроллером, который затем обработает запрос и отправит просмотр (страницу) обратно пользователю. Этот метод называется Url Routing и объясняется в ScottGu's blog довольно хорошо.

У Скотта также есть другие статьи, описывающие MVC, которые стоят checking out.

2

Page.PreviousPage или Page.IsCrossPagePostBack должен сообщить вам.

+0

Хорошо, но как только я знаю, что событие исходит от моего собственного обработчика, как передать его обработчикам ASP по умолчанию? –

+0

Я не уверен, что вы делаете в своей реализации. Я не могу предложить подробный совет. :( –

Смежные вопросы