WEB API WebApiConfig與ValuesController


我們創建好了項目后,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到數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM