我们创建好了项目后,WebApiConfig 和ValuesController这两个是两个核心文件。

WebApiConfig.cs文件

WebApiConfig里面只有一个方法,这个方法在Global.asax文件里的Application_Start()方法被调用,Global.asax文件是一个全局文件,当我们网页启动时就会去执行它。Register(HttpConfiguration config)方法是配置WEB API路由的。

 ValuesController.cs文件

这里有好几个方法,有Get()、Get(int id)、Post()、Put()、Delete()方法,这些方法是根据HTTP请求来调用相对应的控制器方法。 比如get的方式 那么他就会去找 带GET为前缀的方法GETxxxxx()。

同时这里不能出现两个带GET前缀的方法,不然会报错。

{  "Message": "出现错误。",  "ExceptionMessage": "找到了与该请求匹配的多个操作: \r\n类型 ApiDemo.Controllers.ValuesController 的 Get\r\n类型 ApiDemo.Controllers.ValuesController 的 GetABC",

 

它的基类是ApiController,是WEB API的核心。ApiController 负责协调WEB API对象模型中各种不同的类。在HTTP请求的处理中执行一些关键的任务。选择和运行控制器类上的一个操作action,将HTTP请求消息的各元素转成控制器操作方法的参数,并将操作方法返回值转换为有效的HTTP响应正文。运行各种帅选器,这些帅选器可以是为操作action或者controller专门配置 也可以是全局的,为控制器类的操作方法提供适当的上下文。

 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)
        {
        }
    }

发送/api/values的http get请求会触发控制器的无参get方法

ASP.NET WEB API可以根据HTTP方法来选择操作Action,另外还可以通过查询字符串参数来进行选择,然后进行参数绑定

 

添加新控制器

右击Controllers文件夹->添加->控制器

这里选择一个空的控制器,点添加按钮

给控制器添加一个名字

添加的控制器还是继承ApiController类,给选择器添加一个方法

Get到数据

posted on 2020-04-28 02:34  白客C  阅读(1188)  评论(0编辑  收藏  举报