Сведения о вопросе

Junior

09:42, 10th August, 2020

Теги

ASP.NET-создание собственной системы маршрутизации

Просмотров: 530   Ответов: 1

В недавнем проекте я построил свой собственный фреймворк MVC в PHP. Одной из вещей, которые я реализовал, была система маршрутизации. Я использовал mod_rewrite Apache для отправки всех запросов в index.php, а затем проанализировал URI, чтобы извлечь информацию и направить запрос.

Сейчас я занимаюсь ASP.NET, и мне интересно, могу ли я выполнить что-то подобное. Есть ли способ направить все запросы (подобно тому, как это делает WordPress) на одну страницу, где выполняется центральная обработка маршрута? Я знаю о структуре MVC для ASP.NET, но я хотел бы попробовать это сам, поскольку я занимаюсь этим и учусь.

EDIT: BTW, мой хостинг-провайдер запускает IIS 6



  Сведения об ответе

JUST___

23:55, 1st August, 2020

Это будет длинный ответ, потому что я хочу убедиться, что вы полностью осознаете все способы, которыми вы можете достичь того, что вы хотите сделать.

Механизм маршрутизации, который приводит в действие фреймворк ASP.NET MVC, будет работать с традиционным фреймворком ASP.NET. Вы можете воспользоваться преимуществами использования RouteTable и назначения маршрутов, как и в приложении ASP.NET MVC. Вы просто не получите часть MVC в традиционных сайтах ASP.NET. Это было огромным улучшением для фреймворка ASP.NET, и было здорово видеть, как они повторно используют этот код и заставляют его работать в обеих фреймворках. Если вы хотите узнать больше об этом, проверьте сообщение ScottGu и прокрутите вниз до улучшений маршрутизации URL. Также здесь есть ссылка на то, как использовать System.Web.Routing в WebForms от Фила Хаака.

А теперь, если вы все еще хотите написать свою собственную книгу. Вам нужно будет изучить конвейер ASP.NET HTTP и способы реализации интерфейсов IHttpModule и IHttpHandler, чтобы создать свой собственный класс HttpModule или HttpHandler для обработки маршрутизации. Эти интерфейсы являются ключом к написанию вашего собственного механизма маршрутизации. Чтобы помочь поместить эти интерфейсы в рабочий пример, я не могу рекомендовать эту статью MSDN достаточно. Он показывает вам, как работать с любым интерфейсом и объясняет различия при создании собственного механизма перезаписи routing/url.

Теперь, если вы обнаружите, что это может быть слишком много для вас. Есть сторонние библиотеки, которые можно использовать для людей, уже написавших механизм перезаписи routing/url .NET. Вот вопрос, который я видел не так давно: "какой Url рерайтер вы используете для ASP.Net? - прямо здесь, на шоссе 40.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться