System.Web.Routing入门及进阶 下篇

System.Web.Routing入门及进阶 上篇


上面介绍的是最简单的一种定义方式。当然我们可以建立更复杂的规则。其中就包括设定规则的默认值以及设定规则的正则表达式。

UrlRouting高级应用

预计效果:

Code


首先我建立一个Route

Code


当然IHttpHandler的处理方式也要有所改变

为了方便查看我使用了下方法:

Code


即/a/b.aspx是映射到Default.aspx?category=a&action=b


在Default.aspx中写如下代码:

Code


以显示传入的参数。

如果在IIS中设置Index.aspx时就算输入/a/也会访问到/a/index.aspx,即默认的会按RouteValueDictionary中设置的值自动补全

UrlRouting使用正则表达式规则

UrlRouting在定义的时候也可以按正则的规则来进行定义。

Code


以上代码规定了action只能是数字则访问/a/1.chs可以正常访问。

而访问/a/b.chs则会显示未找到资源。



当然这是里可以使用更高级的正则表达式。

UrlRouting的技巧

排除UrlRouting的方法:

System.Web.Routing默认提供了一个IRouteHandler-StopRoutingHandler Class,经过它处理的URL不会被做任何处理

通常使用方法如下:

Code


RouteHandler工厂:

其实IRouteHandler可以实现一个RouteHandler的简单工厂。

Code


规定HTTP verbs,这里要使用System.Web.Routing中的HttpMethodConstraint

Code


Demo程序代码下载:

 附件: 您所在的用户组无法下载或查看附件



(文/chsword  出处/博客园)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

Asp.net 页面导航的几种方法与比较
ASP.NET2.0,无刷新页面新境界!
通过User Control生成HTML-asp.net页面的换皮肤方案
.Net开发中一些好的文章
ASP.NET中编程杀死进程
ASP.NET程序中用Repeater实现分页
ASP.NET 2.0中直接将Access数据库导入到Excel文件中
ASP.NET XMLWeb服务客户端创建Web服务
Win中Net命令的另类用法
Asp.net中基于Forms验证的角色验证授权