当前位置: 移动技术网 > IT编程>开发语言>.net > 7.ASP.NET MVC 5.0中的Routing【路由】

7.ASP.NET MVC 5.0中的Routing【路由】

2019年03月04日  | 移动技术网IT编程  | 我要评论

免费asp空间申请,叶诗文资料,阜新租房网

       大家好,这一篇向大家介绍asp.net mvc路由机制。【ps:上一篇-->6. asp.net mvc 5.0中的html helpers【html帮助类】

路由是一个模式匹配系统,它确保你能够将浏览器的请求,传递到控制器特定的action方法上。路由引擎使用路由表,来将浏览器发送来的请求url和路由表中定义的url进行匹配。routeconfig文件用来添加路由规则,路由是调用控制器和action的方式。

我们在global.asax文件中注册路由:通过在application_start方法中调用registerroutes方法来注册路由。路由用于创建用户友好的urls.路由可以设置程序启动页面,就像asp.net web forms 这样。路由系统能够使我们能够创建任何您想要的url,并以清晰和简洁的方式表达它们。

下面是路由引擎来执行路由,路由系统根据,用户请求的url,来匹配路由表。如果找到了,就继续处理,没找到就抛异常。当asp.net 路由引擎在运行的时候收到了这个请求,然后就会为请求的url,在路由表中找到匹配的规则,如果找到了 ,请求就会接着转到相应的控制器中,否则就会报http 404错误。

 

下面的图片中,chapters是控制器,speakers是方法,actions是可选的,这个url匹配的是home/action这个路由规则,其中action是home控制器中的方法,还有路由你可以进一步配置一个可选参数id,用来指向特定的数据。这就是为什么路由引擎知道哪些参数是可选的了。

 现在理论知识了解差不多了,我们来看看怎么给mvc应用程序添加路由,以完成从控制器到action的映射。我们来创建一个项目,动手实践一下:

创建一个空模板的mvc应用程序。

 

 每一个mvc应用程序都默认创建了路由配置文件routeconfig,里面有默认的实现。我们来看看:

可以看到routeconfig类有一个静态的registerroutes方法,这个方法在我们程序启动的时候,从global.asax文件中进行注册。除此之外,任何带有.axd的请求,就会被ignoreroute进行捕捉,而交给程序的其他处理机制进行处理。我们可以这样说,ignoreroute用来阻止特殊的路由表,例如web.config,图片文件等等。

maproute方法是一个扩展方法,意味着方法已经在路由集合中定义了。代码里面定义了默认的路由规则,默认的路由名称是”default“,指向的是home控制器,index方法,还有一个可选的id参数。

 

路由表在golbal.asax文件中进行注册,当程序启动的时候,application_start方法被调用,然后就进行路由注册。

基本的默认路由配置介绍完了,我们怎么创建自己的路由规则呢?

首先,我们创建一个author控制器,然后修改一下里面的代码:

 

 

 然后创建authordetail视图,写入下面的代码:

现在打开routeconfig文件,创建一个新的路由--【author】

 

 运行项目:

 

  然后再浏览器的url中输入9:

现在以querystring方式,在浏览器中输入:

  

还可以在方法上标注调用的是哪个路由:

 

看这里我们,就创建了一个路由了author。大家学会了么?

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网