繁体   English   中英

ActionContext 在 Microsoft.AspNetCore.Mvc.Controller 中消失了

[英]ActionContext gone in Microsoft.AspNetCore.Mvc.Controller

我在 Microsoft.AspNetCore.Mvc.Controller 中找不到 ActionContext

在我将版本更改为 AspNetCore 1.0.0-preview1 之后

这是控制器类(更改后):

在此处输入图片说明

并从“ Microsoft.AspNet.Mvc ”更改之前:

在此处输入图片说明

和更新前旧方法的代码:

this.Agent = ControllerInfo.Request.Headers["User-Agent"];
this.IP = ControllerInfo.HttpContext.Features.Get<IHttpConnectionFeature>()?.LocalIpAddress?.ToString(); 
this.RemoteIP = ControllerInfo.HttpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress.ToString();
this.Refrence = ControllerInfo.ActionContext.RouteData.Values["controller"].ToString() 
    + "/" + ControllerInfo.ActionContext.RouteData.Values["action"].ToString();

我用ControllerContext替换了ActionContext ,它对我有用 不过,我不知道这是否是官方迁移步骤。

您可以将IActionContextAccessor注入您的类。 它提供对操作上下文的访问。

services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();

使用它:

private readonly IActionContextAccessor actionContextAccessor

public FooController(IActionContextAccessor actionContextAccessor)
{
    this.actionContextAccessor = actionContextAccessor;
}

看到这个问题

至少在 .NET 核心 3.1 中,ControllerBase 有一个属性 Url,它可以作为 UrlHelper 使用,因此您不必自己制作。 https://stackoverflow.com/a/52537244/4172413

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM