c# webapi - 请求的资源不支持 http 方法 'GET'
c# webapi - The requested resource does not support http method 'GET'
我有两种简单的路由方法:
主要路由指令:
[RoutePrefix("api/accounts")]
第一个
[Route("user/{id:guid}", Name = "GetUserById")]
public async Task<IHttpActionResult> GetUser(string Id)
第二个
[Route("user/del/{id:guid}")]
public async Task<IHttpActionResult> DeleteUser(string id)
我想知道为什么如果我使用直接 ulr ( GET ) 测试第一个方法它有效:
http://localhost/ReportApp_WebApi/api/accounts/user/1533882b-e1fd-4b52-aeed-4799edbbcda6
如果我尝试第二个 link,那就有点不同了:
http://localhost/ReportApp_WebApi/api/accounts/user/del/1533882b-e1fd-4b52-aeed-4799edbbcda6
我得到:请求的资源不支持 http 方法 'GET'。
你能帮帮我吗?
第二个link不仅有点不同。事实上,它指向您为删除方法定义的路由。此方法需要 DELETE Http 动词。
当您直接在浏览器上写入 url 时,它会执行 GET 请求。如果你想让你的 delete 方法与 GET 动词一起工作,你必须把 attribte
[HttpGet]
在您的路由属性之前或之后。 虽然我不建议这样做。您可以使用 Fiddler 或 Postman 等 HTTP 客户端来测试这个
Web Api 在控制器中命名方法时使用约定。因为您将方法命名为 DeleteUser,Web Api 需要删除动词。
编辑>>>请遵循评论中列出的建议。 不推荐的部分我也加粗了
我有两种简单的路由方法:
主要路由指令:
[RoutePrefix("api/accounts")]
第一个
[Route("user/{id:guid}", Name = "GetUserById")]
public async Task<IHttpActionResult> GetUser(string Id)
第二个
[Route("user/del/{id:guid}")]
public async Task<IHttpActionResult> DeleteUser(string id)
我想知道为什么如果我使用直接 ulr ( GET ) 测试第一个方法它有效:
http://localhost/ReportApp_WebApi/api/accounts/user/1533882b-e1fd-4b52-aeed-4799edbbcda6
如果我尝试第二个 link,那就有点不同了:
http://localhost/ReportApp_WebApi/api/accounts/user/del/1533882b-e1fd-4b52-aeed-4799edbbcda6
我得到:请求的资源不支持 http 方法 'GET'。
你能帮帮我吗?
第二个link不仅有点不同。事实上,它指向您为删除方法定义的路由。此方法需要 DELETE Http 动词。
当您直接在浏览器上写入 url 时,它会执行 GET 请求。如果你想让你的 delete 方法与 GET 动词一起工作,你必须把 attribte
[HttpGet]
在您的路由属性之前或之后。 虽然我不建议这样做。您可以使用 Fiddler 或 Postman 等 HTTP 客户端来测试这个
Web Api 在控制器中命名方法时使用约定。因为您将方法命名为 DeleteUser,Web Api 需要删除动词。
编辑>>>请遵循评论中列出的建议。 不推荐的部分我也加粗了