2016-05-17 131 views
2

走後,我找不到ActionContext中的Microsoft.AspNetCore.Mvc.ControllerActionContext中的Microsoft.AspNetCore.Mvc.Controller

後,我改變了我的版本到1.0.0 AspNetCore,preview1

這是Controller類(更改後):

enter image description here

而且從 「Microsoft.AspNet.Mvc」 變更前:

01從舊法

enter image description here

和代碼更新前:

 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(); 

回答

10

我更換ActionContext的ControllerContext,它爲我工作。 雖然我不知道這是否是正式的遷移步驟。

+1

它爲Andrey Markovs的問題提供了一個可能的解決方案,因爲它是我的問題的解決方案,首先將我帶到了這裏。我看不出如何刪除我的評論並降低它的效率 - 這個問題真的更好嗎? –

+0

@ManoDestra這不能提供答案? – Undo

+0

「我用ControllerContext替換了它」 - 替換了什麼?這個問題中沒有代碼,也沒有充分的解釋如何解決問題。通過一些編輯,它可以改善,但:) – ManoDestra

5

您可以將IActionContextAccessor注入您的班級。它提供對行動上下文的訪問。

services.AddSingleton<IActionContextAccessor, ActionContextAccessor>(); 

使用它:

private readonly IActionContextAccessor actionContextAccessor 

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

this issue

相關問題