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