第一篇博客-MVC路由简述

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

一直念叨着写博客,可是迟迟不见下笔,工作到现在,技术长进了一点,但是记的东西都很杂,也没个思路,也不知道怎么去写一遍博客,现在在做MVC,写一点跟MVC有关的吧。

我们都知道MVC程序的所有请求都是先经过路由解析然后分配到指定的Controller 以及 Action 中的,MVC中的路由规则都是写在Routing文件中的,Routing的作用一般就是确定Controller、Action以及Action的参数,写法如下:

routes.MaPRoute(

name: "Default_HasId_Html",//路由名称

url: "{controller}/{action}/{id}.html",//带有参数的URL

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//参数默认值

);

注意:路由名称是唯一的,{}表示占位符,类似string类的Format方法,路由规则也可以使用正则,

MVC自定义路由的参数名要和控制器里面方法的参数名一样

defaults表示如果当前没有指定控制器的话,则默认为Home控制器,如果没有指定方法的话,则默认为Index,默认没有指定参数的话,则默认为UrlParameter.Optional(包含可选参数的只读性)

示例:

routes.MapRoute(

name: "List",

url: "{param}/{page}" + ext,

defaults: new { controller = "Index", action = "List", id = UrlParameter.Optional },

constraints: new RouteValueDictionary// 路由约束

{

{"param", @"ss[0-9]+c[0-9]+y[0-9]+"},

{"page", "[0-9]+"}

});

routes.MapRoute(

name: "ScoreSearchList",

url: "ss{subid}c{areaid}y{year}/{page}" + ext,

defaults: new {controller = "Index", action = "List"},

constraints: new RouteValueDictionary {{"subid", "[0-9]+"}, {"areaid", "[0-9]+"},{"year", "[0-9]+"}, {"page", "[0-9]+"}}

);

这两个路由表达的意思是一样的,只不过写法不一样而已.

感谢您怀着耐心看完整篇博文!!!

如果文章有什么错误或不当之处,请您斧正!

您有任何意见或者建议,您可以给我发邮件,也可以在下面留言,我看到了会第一时间回复您的,谢谢!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航