簡體   English   中英

從MVC控制器消耗Web API控制器動作

[英]Consuming web api controller action from mvc controller

我有兩個控制器,一個mvc控制器和一個api控制器,它們都在同一個項目中。

HomeController: Controller{ ... }
DataController: ApiController{ ... }

如果我想從HomeController中使用DataController中的發布操作,是否需要使用HttpClient

不需要。 您可以在HomeController中直接創建DataController對象的對象,並使用其post方法(如.Net中的實例方法)。

public class HomeController : Controller
    {

        public ActionResult GetResult()
        {
            MyApp.DataController dataController = new MyApp.DataController();
            var data = dataController.Post("arguments");

            return View(data);
        }
    }

有一個名為Refit的工具將在這里為您提供幫助,它掩蓋了httpclient交互的所有需求,並允許您創建可以注入到控制器中的服務,從而使它們可測試。 改裝的項目頁面

強烈推薦此工具。 我已經使用了很多時間,並認為在將api背后的邏輯分離時,它是基本工具箱的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM