2017-04-23 57 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