您的位置:首页 > 其它

Cool MVC: 使用正则式限定路由规则Rount

2009-06-10 14:58 344 查看
这里列出一些基本的关于MVC路由规则的使用正则表达式的例子。

/*Front*/
//限定id只能是数字,长度为0~11
routes.MapRoute(
"Archive",
"{user}/Archive/{id}",
new{controller="Blog",action="Archive",user="",id=0},
new{id=@"[\d]{0,11}"}//new{id=@"[\d]*"}//*表示任意长度
);

//限定page只能是数字,长度为0~8
routes.MapRoute(
"Archives",
"{user}/Page/{page}",
new{controller="Blog",action="Archives",page=1},
new{page=@"[\d]{0,8}"}
);

/*Default*/
//限定controller只能匹配Home,Blog,About,Admin
routes.MapRoute(
"Default",//Routename
"{controller}/{action}/{id}",//URLwithparameters
new{controller="Home",action="Index",id=""},//Parameterdefaults
new{controller=@"Home|Blog|About|Admin"}
);

/*Blog*/
//限定user的长度是1~50
routes.MapRoute(
"Blog",
"{user}",
new{controller="Blog",action="Archives",user="Home"},
new{user=@"[\w]{1,50}"}
);


测试:如果用户在浏览器输入http://localhost/bruce/Archive/1则匹配第一个规则,正确;如果输入http://localhost/bruce/Archive/0123456789120000或者http://localhost/bruce/Archive/abc则会显示没有找到对应网页。简单实用的正则表达式!


关于正则表达式可以参考这里学习:http://www.regexlab.com/zh/regref.htm或http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: