关于ASP.NET:ASP.NET-构建自己的路由系统

关于ASP.NET:ASP.NET-构建自己的路由系统

ASP.NET - Building your own routing system

在最近的项目中,我用PHP构建了自己的MVC框架。我实现的一件事是路由系统。我使用Apache的mod_rewrite将所有请求发送到index.php,然后解析URI以提取信息并路由请求。

我现在正在使用ASP.NET,我想知道是否/如何执行类似的操作。有没有一种方法可以将所有请求(类似于WordPress的方法)路由到执行集中路由处理的一页?我知道ASP.NET的MVC框架,但是我想自己动手学习和学习。

编辑:
顺便说一句,我的托管服务提供商运行IIS 6


这将是一个很长的答案,因为我想确保您完全了解可以完成自己想做的所有事情。

为ASP.NET MVC框架提供支持的路由引擎将与传统的ASP.NET框架一起使用。您可以利用RouteTable和分配路由,就像在ASP.NET MVC应用程序中一样。您只是在传统的ASP.NET网站中没有获得MVC部分。这对ASP.NET框架是一个巨大的增强,很高兴看到他们重用该代码并使它们在两个框架中都能工作。如果您想了解更多有关此的信息,请查看ScottGu的文章并向下滚动到" URL路由改进"。这也是Phil Haack在WebForms中如何使用System.Web.Routing的参考。

现在,如果您仍然想写自己的东西。您将需要学习ASP.NET HTTP管道以及如何实现IHttpModule和IHttpHandler接口来创建自己的HttpModule或HttpHandler类来处理路由。这些接口是编写自己的路由引擎的关键。为了帮助将这些接口放在一个可行的示例中,我不能推荐此MSDN文章。它显示了如何使用任一接口,并说明了创建自己的路由/ URL重写引擎时的区别。

现在,如果您发现这可能对您很重要。有一些第三方库可供您使用,他们已经在.NET中编写了路由/ URL重写引擎。这是我不久前才看到的一个问题,问"您为ASP.Net使用哪个Url重写器?"就在这里。


推荐阅读