eol*_*dre 5 c# asp.net-mvc routing asp.net-core-mvc
我在ASP.Net Core 2应用程序中使用属性库路由,并尝试根据路由将参数注入Controller.
当我使用该示例时,我收到一条消息的异常:"尝试激活(我的控制器类型)时无法解析类型'System.String'的服务"
[Route("api/agencies/{agencyId}/clients")]
public class ClientDataController : Controller
{
public ClientDataController([FromRoute] string agencyId)
{
}
[HttpGet]
public void SomeAction()
{
}
}
Run Code Online (Sandbox Code Playgroud)
您是否无法在控制器构造函数中使用FromRoute属性?我有别的东西显然是错的吗?
FromRoute仅适用于操作级别,不适用于控制器级别。
在构造函数中获取路由参数的一种方法是将 an 传递IHttpContextAccessor给构造函数,然后使用GetRouteValue实际的方法HttpContext来获取参数值
[Route("api/agencies/{agencyId}/clients")]
public class ClientDataController : Controller
{
private readonly agencyId;
public ClientDataController(IHttpContextAccessor httpContextAccessor)
{
agencyId = (string)httpContextAccessor.HttpContext.GetRouteValue("agencyId");
}
[HttpGet]
public void SomeAction()
{
//use agencyId here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |