gpt4 book ai didi

c# - 同时使用 url 参数和查询字符串

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:23 24 4
gpt4 key购买 nike

我的产品 Controller 中有两个操作方法。这是我的 RouteConfig。

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

这是两个操作及其工作 url。

[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)

但我也想使用下面的 url 进行 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 作为占位符

关于c# - 同时使用 url 参数和查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49098697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com