![](/img/trans.png)
[英]Microsoft.AspNetCore.Mvc.Controller.TempData.get returned null
[英]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.