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

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

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

===============>>#1 票数:6 已采纳

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

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

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

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

  ask by Brian Warshaw translate from so

未解决问题?本站智能推荐: