如何通过Web Api分辨出用于返回数据的方法

时间:2017-04-23 03:25:00

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

我是asp.net Web Api的新手。我使用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 个答案:

答案 0 :(得分:1)

这取决于发出请求时使用的HTTP谓词。

<field name="code">formdownload.form_serial_no</field> GET的请求将与api/values/5

匹配

public string Get(int id)DELETE的请求将与api/values/5匹配。

实际上在原始问题中提供的示例代码的注释中表明了这一点。

参考Routing in ASP.NET Web API