这里列出一些基本的关于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", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" }, // Parameter defaults 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
作者:Bruce 编程的艺术世界出处:http://coolcode.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。