繁体   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