码迷,mamicode.com
首页 > Web开发 > 详细

浅谈MVC中路由

时间:2016-01-06 21:34:50      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

引言

  学习ASP.NET MVC 路由这一关是肯定必不可少的。这一节,我们就来简单介绍下MVC中的路由机制。简单的路由机制相信大家都已了解,这一节主要介绍路由中很少使用的部分。

使用静态URL片段

  在一个路由中,并不是所有的URL片段都要求是动态的,也可以创建具有静态片段的模式。例如以下的路由:

1 routes.MapRoute("StaticRoute", "X{controller}/{action}",
2                             new { controller = "Home", action = "Index" },
3                             new string[] { "MyFirstMvcProject.Controllers" });

  我们看到这条路由定义了第一个片段以字母X打头,controller的值是X字母以后的部分,第二个片段Action定义了默认值Index。这条路由将匹配任何X字母开头,controller值是取自第一个片段除字母X以外的部分。

  一个有趣的例子:

  设想下这样的场景,如果您的网站已经发布好久了,用户与网站之间已经形成了某种契约。例如。用户对于这个地址已经非常熟悉http://www.asp.net-example.com/Learn/Index。那么很显然控制器是Learn。如果现在您需要对程序进行重构,那么我们最好保留用户已经熟悉的链接地址。假设重构以后,新的控制器是Home。那么我们可以通过一条保留旧有URL地址的路由来实现这个功能。

1 routes.MapRoute("StaticRoute", "Learn/{action}",
2                             new { controller = "Home", action = "Index" },
3                             new string[] { "MyFirstMvcProject.Controllers" });

  上面的路由,我们输入Learn/Index时,路由机制会自动匹配新的控制器Home。这样一方面没有打断网站与已有用户之间形成的契约,同时又对程序功能做了一个较好的迁移。我们在浏览器中运行如下:

技术分享

  我们看到,我们输入/Learn/Index。路由找到的是HomeController。

定义可变长路由

  

 

 

 

 

 

 

 

浅谈MVC中路由

标签:

原文地址:http://www.cnblogs.com/dreamGong/p/5106732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!