首页 > 解决方案 > ASP.NET Core MVC 在不使用 Http 请求的情况下使用内部 Web API

问题描述

我正在使用 ASP.NET Core MVC 和 Web API 并尝试使用内部 Web API(使用 ApiController 完成,为将来的跨平台应用程序使用做准备),我看到了一个不需要使用 HttpClient 或任何 Http 的答案从 Web API 获取数据的请求功能,请参阅:Consuming web api controller action from mvc controller

我正在尝试做类似的事情,但是我的自动生成的 Web API 控制器带有 DBContext 参数,这导致我无法遵循链接中提到的内容。

以下是我的控制器中的内容,导致我无法执行上面链接中提到的操作:

    private readonly MyTestDBContext _context;

    public MfgProductsController(MyTestDBContext context)
    {
        _context = context;
    }

如果“MyTestDBContext context”参数应该保留,我应该在我的控制器中写什么来传递 DBContext?

或者,如果有办法从参数中删除“MyTestDBContext context”,构造函数应该如何更改?

标签: asp.net-mvcasp.net-coremodel-view-controllerasp.net-web-api2

解决方案


让容器完成它的工作,只需将控制器作为依赖项添加到控制器中:

public class MyController : Controller
{
    public MyController(MfgProductsController productsController) 
    {
        _productsController = productsController;
    }

    private readonly MfgProductsController _productsController;    
}

它应该为您填充所有依赖项。


推荐阅读