ASP.NET-Router配置中MapRoute的参数
2016-03-24 09:04
531 查看
App_Start文件夹中的RouteConfig
[/code]
①name参数:规则名称,可以随意起名。不可以重名,否则会发生错误:“路由集合中已经存在名为“Default”的路由。路由名必须是唯一的”。②url参数:url获取数据的规则,这里不是正则表达式,将要识别的参数括起来即可,比如:{controller}/{action}最少只需要传递name和url参数就可以建立一条Routing(路由)规则,比如实例中的规则完全可以改为:routes.MapRoute(“Default”,“{controller}/{action}”);③defaults参数:url参数的默认值:如果一个url只有controller:localhost/home/,而且我们只建立了一条url获取数据规则:{controller}/{action},那么这时就会为action参数设置defaults参数中规定的默认值。由于defaults参数是Object类型,所以可以传递一个匿名类型来初始化默认值:new{controller=“Home”,action=“Index”}。在ASP.NetMVC网站默认实例中使用的是三个参数的MapRoute方法:④constraints参数:用来限定每个参数的规则或Http请求的类型。constraints属性是一个RouteValueDictionary对象,也就是一个字典表,但是这个字典表的值可以有两种类型:一是:用于定义正则表达式的字符串(正则表达式不区分大小写)。通过使用正则表达式可以规定参数格式,比如controller参数只能为4位数字:new{controller=@”\d{4}”}
[/code]
具体的一个实例
[/code]
来自为知笔记(Wiz)
MapRoute(stringname,stringurl);
MapRoute(stringname,stringurl,objectdefaults);
MapRoute(stringname,stringurl,string[]namespaces);
MapRoute(stringname,stringurl,objectdefaults,objectconstraints);MapRoute(stringname,stringurl,objectdefaults,string[]namespaces);
MapRoute(stringname,stringurl,objectdefaults,objectconstraints,string[]namespaces);
[/code]
①name参数:规则名称,可以随意起名。不可以重名,否则会发生错误:“路由集合中已经存在名为“Default”的路由。路由名必须是唯一的”。②url参数:url获取数据的规则,这里不是正则表达式,将要识别的参数括起来即可,比如:{controller}/{action}最少只需要传递name和url参数就可以建立一条Routing(路由)规则,比如实例中的规则完全可以改为:routes.MapRoute(“Default”,“{controller}/{action}”);③defaults参数:url参数的默认值:如果一个url只有controller:localhost/home/,而且我们只建立了一条url获取数据规则:{controller}/{action},那么这时就会为action参数设置defaults参数中规定的默认值。由于defaults参数是Object类型,所以可以传递一个匿名类型来初始化默认值:new{controller=“Home”,action=“Index”}。在ASP.NetMVC网站默认实例中使用的是三个参数的MapRoute方法:④constraints参数:用来限定每个参数的规则或Http请求的类型。constraints属性是一个RouteValueDictionary对象,也就是一个字典表,但是这个字典表的值可以有两种类型:一是:用于定义正则表达式的字符串(正则表达式不区分大小写)。通过使用正则表达式可以规定参数格式,比如controller参数只能为4位数字:new{controller=@”\d{4}”}
routes.MapRoute(
name:"Default2",
url:"{controller}-{action}-{id}",
defaults:new{controller="Home",action="Index",id=UrlParameter.Optional},
constraints:new{
controller=@"\d{4}",
httpMethod=newHttpMethodConstraint("GET")}
);
[/code]
具体的一个实例
//酒店列表页匹配
routes.MapRoute(
"酒店列表页",
"hotels/{action}-{city}-{price}-{star}",
new{controller="Hotel",action="list",city="beijing",price="-1,-1",star="-1"},
new{city=@"[a-zA-Z]*",price=@"(\d)+\,(\d)+",star="[-1-5]"}
);
//酒店频道所有匹配
routes.MapRoute(
"酒店首页",
"hotels/{*iiii}",
new{controller="Hotel",action="default",hotelid=""}
);
//网站首页默认匹配
routes.MapRoute(
"网站首页",
"{*values}",
new{controller="Home",action="index"}
);
[/code]
相关文章推荐
- ASP.NET-Razor常用方法
- ASP.NET-RedirectToAction只能使用get方法
- ASP.NET Core 行军记 -----第一步(艰辛的 MVC Hello World)
- C# asp.net mvc 配置多个route 参数
- ASP.NET在底层类库中获取Session C#类中获取Session 原创
- 细谈asp.net如何处理应用程序-----c#菜鸟日记
- ASP.NET MVC系列:从Controller访问Model数据
- Asp.net 提供程序模型
- GRASP 职责分配原则[转]
- asp.net文件下载文件另存为
- asp.net在线QQ客服聊天
- 2016-AspNet-MVC教学-5-动态表格页面的基本测试-2
- ASPCMS标签教程
- 使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)
- ASP.NET会话丢失,Session超时配置
- asp.net 文件打包成压缩包
- 使用MiniProfiler调试ASP.NET MVC网站性能
- ASP.NET MVC的TextBoxFor()和TextBox()
- ASP.NET Boilerplate Castle容器无缝添加日志功能
- ASP.NET MVC系列:添加模型