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

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

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

Обновлено: Кстати, мой хостинг-провайдер использует IIS 6

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 459
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Теперь, если вы обнаружите, что это может быть слишком для вас. Существуют сторонние библиотеки, которые вы можете использовать для людей, которые уже написали движок маршрутизации / переписывания URL-адресов в .NET. Вот вопрос, который я видел не так давно, задавая "Какой переписчик URL-адресов вы используете для ASP.Net?" прямо здесь, на SO.

Отличный ответ ... Мне тоже понравились эти статьи - chriscavanagh.wordpress.com/2008/03/11/…, blogs.msdn.com/b/mikeormond/archive/2008/05/14/…

nikib3ro 15.02.2011 01:25

Другие вопросы по теме