同时使用url参数和查询字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同时使用url参数和查询字符串相关的知识,希望对你有一定的参考价值。
我的Products控制器中有两个操作方法。这是我的RouteConfig。
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这是两个行动及其工作网址。
[HttpGet]
//uri:http://localhost:49964/api/products/product?strKey=1
public IHttpActionResult Product(string strKey)
[HttpPost]
//uri:http://localhost:49964/api/products/product
public IHttpActionResult Product([FromBody] Product product)
但我也想使用下面的网址进行GET。
http://localhost:49964/api/products/product/1
但是web api响应,
The requested resource does not support http method 'GET'.
答案
如果你想保持strKey
,将id
改为strKey
或反过来。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{strKey}",
defaults: new { strKey = RouteParameter.Optional }
);
路由模板需要匹配映射按预期工作的操作。
//GET api/products/product/1
//GET api/products/product?strKey=1
[HttpGet]
public IHttpActionResult Product(string strKey)
但这意味着此路线中的所有操作都可选择使用strKey
作为占位符
以上是关于同时使用url参数和查询字符串的主要内容,如果未能解决你的问题,请参考以下文章