asp.net-mvc – 如何在ASP.net MVC 4 RouteConfig.cs中使用约束
发布时间:2020-12-16 04:15:32 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用最新的asp.net mvc 4架构来解决一些路由限制.在App_Start下有一个名为RouteConfig.cs的文件. 如果我从下面的示例中删除约束部分,则网址有效.但是我需要添加一些约束,以便url在所有内容上都不匹配. 应该工作:/ videos / rating / 1 不工作:/
我正在尝试使用最新的asp.net mvc 4架构来解决一些路由限制.在App_Start下有一个名为RouteConfig.cs的文件.
如果我从下面的示例中删除约束部分,则网址有效.但是我需要添加一些约束,以便url在所有内容上都不匹配. 应该工作:/ videos / rating / 1 不工作:/ videos / 2458 / Text-Goes-Here 这就是我所拥有的: //URL: /videos/rating/1 routes.MapRoute( name: "Videos",url: "videos/{Sort}/{Page}",defaults: new { controller = "VideoList",action = "Index",Sort = UrlParameter.Optional,Page = UrlParameter.Optional },constraints: new { Sort = @"[a-zA-Z]",Page = @"d+"} ); 解决方法
如果您想在同一路线上使用多个可选参数,则会遇到麻烦,因为您的网址必须始终指定第一个才能使用第二个.仅仅因为您使用约束并不会阻止它评估参数,而是无法匹配此路由.
以此为例:/ videos / 3 当它试图匹配时,它会找到视频,然后说:“好的,我仍然匹配”.然后它查看下一个参数,即Sort,它获得值3,然后根据约束检查它.约束失败,所以它说“OPPS,我不匹配这条路线”,它继续前进到下一条路线.为了指定没有定义sort参数的页面,您应该定义2个路由. //URL: /videos/rating/1 routes.MapRoute( name: "Videos",constraints: new { Sort = @"[a-zA-Z]+",Page = @"d+"} ); //URL: /videos/1 routes.MapRoute( name: "Videos",url: "videos/{Page}",Sort = "the actual default sort value",constraints: new { Page = @"d+"} ); 我尽可能地将最具体的路线放在最前面,并以最不具体??的方式结束,但在这种情况下,由于约束,顺序无关紧要.我的具体含义是大多数定义的值,因此在这种情况下,您必须在第一个路径中定义排序,并且您还可以指定页面,因此它比仅具有page参数的路径更具体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – “update-database”的实体框架SQLMigrat
- 使用jackson将asp.net / MS专有的json Dateformat转换为jav
- asp.net-mvc – 具有SelectList(s)最佳实践的ASP.NET MVC V
- asp.net-mvc – ASP.NET MVC – 主页面和视图页面的不同模型
- 看看.NET Core几个Options的简单使用
- asp.net – SOAP与HTTP
- 如何通过自定义MessageFilter的方式利用按键方式操作控件滚
- 有趣的项目理念为体面的开发想要了解更多Asp.Net
- asp.net – 实体框架:“底层提供商在Open上失败”
- asp.net-mvc-3 – MVC中的SSO(单点登录)
推荐文章
站长推荐
- asp.net-mvc – 如何在MVC应用程序中使用RavenDb
- asp.net-mvc – 基于MVC角色的路由
- asp.net-mvc-4 – ASP.NET Active Directory搜索
- asp.net-mvc-4 – 如何在Razor MVC4中创建DateTi
- asp.net core 2.0 webapi集成signalr(实例讲解)
- asp.net-mvc – 在web.config文件中创建自定义变
- Asp.Net,DropDownList,AutoPostBack和Google Chr
- asp.net-mvc – 传递给Html.ActionLink时在模型上
- 具有任意数量的键值对的ASP.NET路由 – 是否可能
- 我可以使用ASP.NET获得“WAR文件”类型部署吗?
热点阅读