2008-08-22 6 views
2

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

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

EDIT: Кстати, работает мой хостинг-провайдер IIS 6

ответ

6

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

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

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

Теперь, если вы узнаете, что это может быть много для вас. Существуют библиотеки сторонних разработчиков, которые вы можете использовать для людей, которые уже писали механизм перемотки/url-перезаписи в .NET. Вот вопрос, который я давно не видел, спрашивая «What Url rewriter do you use for ASP.Net?» прямо здесь, на SO.

+0

Отличный ответ ... Мне также понравились эти статьи - http://chriscavanagh.wordpress.com/2008/03/11/aspnet-routing-goodbye-url-rewriting/, http://blogs.msdn.com /b/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx – kape123 2011-02-14 22:25:39