如何在C# ASP.NET WebAPI中為Action方法賦予別名?


控制器中的公共方法稱為Action方法。讓我們考慮一個例子,其中DemoController類派生自ApiController,幷包含多個Action方法,其名稱與HTTP動詞(如Get、Post、Put和Delete)匹配。

示例

public class DemoController : ApiController{
   public IHttpActionResult Get(){
      //Some Operation
      return Ok();
   }
   public IHttpActionResult Post([FromUri]int id){
      //Some Operation
      return Ok();
   }
   public IHttpActionResult Put([FromUri]int id){
      //Some Operation
      return Ok();
   }
   public IHttpActionResult Delete(int id){
      //Some Operation
      return Ok();
   }
}

根據傳入的請求URL和HTTP動詞(GET/POST/PUT/PATCH/DELETE),WebAPI決定執行哪個WebAPI控制器和Action方法,例如,Get()方法將處理HTTP GET請求,Post()方法將處理HTTP POST請求,Put()方法將處理HTTP PUT請求,Delete()方法將處理上述WebAPI的HTTP DELETE請求。因此,Get方法的URL將是https://:58174/api/demo。

使用**ActionName**屬性可以為Action方法提供別名。還需要更改WebApiConfig.cs中的路由模板。

示例

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      [ActionName("FetchStudentsList")]
      public IHttpActionResult Get(){
         List<Student> students = new List<Student>{
            new Studen{
               Id = 1,
               Name = "Mark"
            },
            new Student{
               Id = 2,
               Name = "John"
            }
         };
         return Ok(students);
      }
   }
}

現在我們可以使用**FetchStudentsList**(別名)呼叫Get()方法。

更新於:2020年8月19日

3K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.