如何将字符串参数传递给 DELETE WebAPI 端点

Mak*_*yNZ 1 c# asp.net rest asp.net-web-api

创建新的 ASP.net WebAPi Rest 控制器时,visual studio 添加了这样的 DELETE 操作

// DELETE: api/foo/5
public void Delete(int id)
{
}
Run Code Online (Sandbox Code Playgroud)

我可以成功调用该端点

但是我系统中的“id”是字符串哈希,所以我需要将“id”作为字符串而不是 int 传递,例如

// DELETE: api/foo/58c75babbf61cda99c84af8b
public void Delete(string id)
{
}
Run Code Online (Sandbox Code Playgroud)

但是当我更改此设置时,不再调用 DELETE 操作,并且出现错误 "No HTTP resource was found that matches the request URI "

任何想法为什么?以及如何解决这个问题?

Ako*_*agy 5

您可以自己指定路由模板,并在其中指定 id 为 guid:

[HttpDelete, Route("api/foo/{id}")]
public void Delete(string id)
{
}
Run Code Online (Sandbox Code Playgroud)