2017-04-23 41 views
1

我是asp.net Web Api的新手。我創建了一個簡單的Web應用程序阿比用ValuesController如何區分Web Api使用哪種方法返回數據

什麼我會得到我提出一個要求:

api/values/5 

當有:

public string Get(int id) { } 
public void Delete(int id) { } 

方法在控制器中。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 

namespace my2ndWebApi.Controllers 
{ 
    public class ValuesController : ApiController 
    { 
     // GET api/values 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 

     // GET api/values/5 
     public string Get(int id) 
     { 
      return "value"; 
     } 

     // POST api/values 
     public void Post([FromBody]string value) 
     { 
     } 

     // PUT api/values/5 
     public void Put(int id, [FromBody]string value) 
     { 
     } 

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

回答

1

它取決於提出請求時使用的HTTP動詞。

GET請求api/values/5將匹配public string Get(int id)

DELETE一個請求api/values/5將匹配public void Delete(int id)

它實際上在原始問題中提供的示例代碼的註釋中指出。

參考Routing in ASP.NET Web API