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

时间:2017-03-20 22:44:14

标签: c# asp.net rest asp.net-web-api

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

// DELETE: api/foo/5
public void Delete(int id)
{
}

我可以成功调用该端点

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

// DELETE: api/foo/58c75babbf61cda99c84af8b
public void Delete(string id)
{
}

但是当我更改此内容时,不再调用DELETE操作,我收到错误"No HTTP resource was found that matches the request URI "

任何想法为什么?怎么绕过这个?

1 个答案:

答案 0 :(得分:2)

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

[HttpDelete, Route("api/foo/{id}")]
public void Delete(string id)
{
}