ASP.. NET Core api控制器没有被实例化



我已经在我的。net Core 3.1应用程序中创建了一个API控制器(带有Angular前端,c#)。

由于一些奇怪的原因,它没有被实例化,如果我试图从Typescript服务中调用控制器上的任何方法,什么也没有发生,它只是跳过调用,没有错误信息生成,但是控制器中的方法没有被访问。

我已经追踪到控制器没有被实例化的事实,但我看不出为什么。有人遇到过这个问题吗?

我注入一个服务到构造函数中,但服务在启动时被添加到ioc,所以它不能(与其他使用的服务一起),有人可以帮助吗?

这是控制器代码的一部分,我在构造函数中添加了一个断点,但它没有被击中。我在之前添加的控制器上遇到了完全相同的问题,我花了很长时间试图弄清楚为什么它没有被实例化,然后突然,它被实例化了,尽管我没有做任何代码更改,所以我对此感到困惑。

public class RepController : BaseApiController
{
private readonly IRepService _repService;
private readonly ILookupService _lookupService;
private readonly IUserContext _userContext;
public RepController(IRepService repService,
ILookupService lookupService,
IUserContext userContext)
{
Assert.NullCheck(repService);
Assert.NullCheck(lookupService);
Assert.NullCheck(userContext);
_repService = repService;
_lookupService = lookupService;
_userContext = userContext;
}
}

我认为问题是继承BaseApiController。您应该尝试将其设置为Controller

你还应该在你的控制器上指定路由。关于端点路由的文档链接。

也许你的端点没有正确的返回类型,这应该是类型ActionResult

我发现了问题,我有这个装饰器

[Route("api/[controller]"]

而不是

[Route("api/[controller]/[action]"]

它正在工作

最新更新