HttpDeleteAttribute 装饰器,有效模板? C#

HttpDeleteAttribute decorator, valid template? C#

下一个模板路由是否有效?

[HttpDelete("withdrawal/client/{clientId}/dni/{dni}?catalogNumber={catalogNumber}&warehouse={warehouseId}")]

我收到异常,下一个描述:

RoutePatternException: The literal section '?catalogNumber=' is invalid. Literal sections cannot contain the '?' character.

任何帮助都会很好!

您可以在函数声明中指定它们,而不是在字符串文字中包含查询参数

[HttpDelete("withdrawal/client/{clientId}/dni/{dni}")]
public void Foo([FromQuery] string catalogNumber, [FromQuery] string warehouseId)
{
  ...
}

对于url

http://.../withdrawal/client/{clientId}/dni/{dni}?catalogNumber={catalogNumber}&warehouse={warehouseId}

你的行动应该是

[HttpDelete("withdrawal/client/{clientId}/dni/{dni}")]
public IActionResult client(int client, string dni, string catalogNumber, string warehouse)
{
  ...
}

或者你可以做这个url

http://../withdrawal/client/{clientId}/dni/{dni}/{catalogNumber?}/{warehouseId?}")]

你的行动应该是

[HttpDelete("withdrawal/client/{clientId}/dni/{dni}/{catalogNumber?}/{warehouseId?}")]
public IActionResult client(int client, string dni, string catalogNumber, string warehouse)
{
  ...
}
````