2

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

我现在正在涉足 ASP.NET,我想知道是否/如何执行类似的操作。有没有办法将所有请求(类似于 WordPress 的方式)路由到执行中央路由处理的一个页面?我知道 ASP.NET 的 MVC 框架,但我想自己尝试一下,因为我正在修补和学习。

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

4

1 回答 1

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 管道以及如何实现IHttpModuleIHttpHandler接口来创建您自己的 HttpModule 或 HttpHandler 类来处理您的路由。这些接口是编写自己的路由引擎的关键。为了帮助将这些接口放在一个工作示例中,我再怎么推荐这篇MSDN 文章都不为过。它向您展示了如何使用任一界面,并解释了创建您自己的路由/url 重写引擎时的差异。

现在,如果你发现这对你来说可能太多了。您可以使用已经在 .NET 中编写路由/url 重写引擎的人使用第三方库。这是我不久前看到的一个问题,即“你为 ASP.Net 使用什么 Url 重写器? ”就在这里。

于 2008-08-22T17:31:20.873 回答