【原创】mvc tips:建立可删节的url

前一段时间,在博问中提了个小问题。http://space.cnblogs.com/question/2823/

全文引用如下:
现在我想实现以下的url地址,搞不出来了

/U/Tea/{pageindex}

/U/Tea/{teaType}/{pageindex}

那么Global.asax.cs里的路径规则和Controller里面分别怎么设置?

我现在遇到的问题是这样的地址

/U/Tea/Green

会默认到第一条规则然后说不能转换为int

而不是到我期望的第二条规则,默认页是1的。

当时承蒙园子里mvc之达人重典老大的回答,找到了一个临时的解决方案。不过这个方案无法实现可删节url。后来,抽出空,我又仔细的想了想,其实要我要求的url还是可以实现的,因为mvc的地址规则是支持正则表达式的。我们只要把是第一个参数是数字的归到路径一,其他类似归到路径二就好了。唯一注意的是teaType不能用数字而已。既然知道了思路,说干就干。

            routes.MapRoute(
                
"Tea " ,
                
" U/Tea/{pageIndex} " ,
                
new   { controller = "U", action = "Tea", pageIndex = 1 } ,
                
new   { pageIndex = @"\d{1,8}" } );
            routes.MapRoute(
                
"TeaType " ,
                
" U/Tea/{teaType}/{pageIndex} " ,
                
new   { controller = "U", action = "TeaType", teaType = string.Empty, pageIndex = 1 } );

增加了这两条路径规则以后,基本就实现了我问题里要求的。目前为止,我的项目中就是这么使用的,而且运转良好。各位达人有什么其他好办法欢迎指教、探讨。

你可能感兴趣的:(tips)