[英]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.