在最近的项目中,我用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

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

2回复

ASP.NET中的网址路由/重写

我们希望向我们的网站添加更多数据跟踪,并希望将一个关键字附加到url的末尾。 我有这样的东西 http://www.samplesite.com/t/1/video/123456 http://www.samplesite.com/t/2/video/123457 htt
1回复

asp.net路由的URL转换?

可以说我有这个sql server表: 我想要一个人的详细信息页面,例如: http://localhost/Music/Beatles/Paul 我想对待的是: http://localhost/Details.aspx?id=2 所以-我正在编写此代码来注册一
1回复

使用ASP.NET4的Webforms路由

我需要在每个URL上提供一个pageId,但是不需要用户看到此pageId。 例如 我在Global.asax中: 有没有什么方法可以配置此路由,因此它具有“硬编码”参数页面ID,例如这样的东西-
3回复

Asp.Net 3.5路由到Web服务?

我一直在寻找一种方式来路由http://www.example.com/WebService.asmx到http://www.example.com/service/仅使用ASP.NET 3.5路由架构,而无需配置IIS服务器。 到目前为止,我已经完成了大多数教程告诉我的内容,添加了对路由
1回复

在root上托管时,Asp.net路由不起作用

我已经使用Asp.net 4.0路由技术来实现友好的url。 我在global.asax中使用了以下代码。 我在数据库中的URL类似于About-Us,而Pagename则类似于MyFolder / Aboutus.aspx。 在我的本地计算机上,它可以工作,但是当我在服务器(iis
2回复

如何使用ASP.Net MVC路由来路由图像?

我将网站升级为使用来自传统ASP.Net Web表单的ASP.Net MVC。 我正在使用MVC路由将旧.aspx页的请求重定向到其新的Controller / Action等效项: 这对于页面非常有效,因为它们直接映射到控制器和操作。 但是,我的问题是图像请求-我不确定如何重定向这
1回复

如何使此ASP.NET路由正常工作?

我正在尝试使用ASP.Net MVC 3编写一个非常简单的CMS系统原型。 系统有一个控制器,有两个动作:show和create。 “显示”操作的格式最多需要5个可选部分,例如domain.com/part1/part2/part3/part4/part5 “显示”操作的格式类
1回复

ASP.NET WebForms中的常规路由,将“ / cpanel /”更改为“ / marketer /”

考虑这种情况,在这种情况下, /cpanel/x模式中的所有传入链接都应转换(重写)为/marketer/x marketer /marketer/x ,其中x代表URL的其余部分。 例如: /cpanel/coupons.aspx到/marketer/coupons.aspx
1回复

找不到带有Web窗体和SSL页面的ASP.Net路由

我有一个ASP.NET 4 Web窗体应用程序,正在尝试将其部署到生产服务器(Windows Server 2003和IIS 6.0)。 我已经将该应用程序成功部署到具有相同设置和配置的测试服务器,并且所有路由在该测试服务器上都工作得很好。 我现在在生产服务器上的所有路由上都得到40
1回复

将URL路由与querystring参数一起使用会导致错误,导致在ASP.NET 4.0中加载所有.png / .jpg图像

我正在尝试将URL路由实现到我的Web应用程序。 当我将其实现到没有QueryStrings的页面时,它工作正常。 但是,当我尝试为使用querystrings的网页实施相同的操作时,它会给出Jscript运行时错误。 和找不到图片 所以对于JS我使用ResolveClient