首页 > 代码库 > [水煮 ASP.NET Web API2 方法论](3-4)设置路由可选项
[水煮 ASP.NET Web API2 方法论](3-4)设置路由可选项
问题
怎么样创建一个路由,不管客户端传不传这个参数,都可以被成功匹配。
解决方案
ASP.NET WEB API 的集中式路由和属性路由都支持路由声明可选参数。
在用集中式路由中可以通过 RouteParameter.Optional 指定一个可选参数,RouteParameter.Optional 等同于MVC 中的 UrlParameter.Option。
属性路由,通过在可选参数后面添加一个问好作为后缀。同时,必须为其指定默认值
工作原理
从根本上看,ASP.NET WEB API 支持的可选参数路由其实是默认值路由的一个变种。RouteParamter 在代码片段 3-8 中是一个可变类型。这个示例主要是为了做一个比较,来说明路由可选参数是路由默认值的一个变种。
属性路由中,添加问号后缀路由参数转换为 RouteEntry,使用 RouteParameter.Optional 的默认值。
在运行时,当框架处理 HTTP 请求的时候,如果可选参数没有值,HttpRoutingDispatcher 会移除他们。他是可以支持 /resource 和 /resource/{optionalParameter}。
代码演示
如代码片段 3-9 所示,使用的属性路由定义路由可选参数,这个是允许客户端传参进行基本的分页。
同样的路由,我们可以使用集中式路由如代码片段 3-10 所示定义路由可选参数。
[水煮 ASP.NET Web API2 方法论](3-4)设置路由可选项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。