簡體   English   中英

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

如果我嘗試第二個鏈接,只是有些不同:

http://localhost/ReportApp_WebApi/api/accounts/user/del/1533882b-e1fd-4b52-aeed-4799edbbcda6

我得到: 請求的資源不支持http方法'GET'。

你能幫助我嗎?

第二個鏈接不僅有所不同。 實際上,它指向您為delete方法定義的路由。 此方法需要DELETE Http動詞。

當您直接在瀏覽器中寫入url時,它將執行GET請求。 如果要讓delete方法與GET動詞配合使用,則必須添加屬性

[HttpGet]

在您的路線屬性之前或之后。 雖然我不建議這樣做 您可以使用Fiddler或Postman之類的HTTP客戶端進行測試

Web Api在控制器中命名方法時使用約定。 因為您將方法命名為DeleteUser,所以Web Api希望使用Delete動詞。

編輯>>>,請遵循注釋中列出的建議。 我也將不推薦的部分加粗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM