【原创】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 });

增加了这两条路径规则以后,基本就实现了我问题里要求的。目前为止,我的项目中就是这么使用的,而且运转良好。各位达人有什么其他好办法欢迎指教、探讨。
posted @ 2008-10-01 13:11  第一控制.NET  阅读(406)  评论(2编辑  收藏  举报