gpt4 book ai didi

c# - 从路由参数注入(inject) Controller 依赖

转载 作者:行者123 更新时间:2023-12-04 11:33:15 24 4
gpt4 key购买 nike

我在 ASP.Net Core 2 应用程序中使用属性基本路由,并尝试根据路由将参数注入(inject)到 Controller 中。

当我使用该示例时,我收到一条异常消息:“在尝试激活(我的 Controller 类型)时无法解析类型 'System.String' 的服务”

[Route("api/agencies/{agencyId}/clients")]
public class ClientDataController : Controller
{
public ClientDataController([FromRoute] string agencyId)
{

}

[HttpGet]
public void SomeAction()
{
}

}

您不能在 Controller 构造函数中使用 FromRoute 属性吗?我还有什么明显的错误吗?

最佳答案

有一种方法可以插入来自类 Route 的值属性。
使用属性而不是构造函数。Route属性只能应用于类和方法。
查看源码here .FromRoute可以应用于参数和属性。见代码here .
Route属性不适用于构造函数,DI 将无法解析参数,您将收到错误消息。
在类级别,我们可以使用 FromRoute在公共(public)属性上从 Route 中获取值.

[Route("api/agencies/{agencyId}/clients")]
public class ClientDataController
{
[FromRoute]
public string agencyId { get; set; }

[HttpGet]
public string SomeAction()
{
return agencyId;
}

}

关于c# - 从路由参数注入(inject) Controller 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com