【问题标题】:Put request to /api/controller/:id instead of /api/controller?id=:id将请求发送到 /api/controller/:id 而不是 /api/controller?id=:id
【发布时间】:2020-08-07 01:39:51
【问题描述】:

我目前正在这样做:

[HttpPut]
public void Edit(int id, Model model)
{
    ...
}

这给了我端点 /api/controller?id=66 而不是我想要的:/api/controller/66

【问题讨论】:

    标签: asp.net-core asp.net-core-webapi


    【解决方案1】:

    为了得到你想要的——PUT请求中的api/controller/66,你的HTTP动词属性应该修改为[HttpPut("{id}")]

    而您的id 默认是从查询字符串中获取的另一个原因是PUT 请求的参数绑定以这样一种方式工作,即原始类型从请求查询字符串和来自请求正文的复杂类型。

    this答案中列出了参数绑定规则的简要说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多