programing

HttpContext에 액세스할 수 없습니다.현재의

powerit 2023. 6. 7. 23:20
반응형

HttpContext에 액세스할 수 없습니다.현재의

HttpContext에 액세스할 수 없습니다.C#4.5가 설치된 내 프로젝트 MVC4의 현재

시스템에 참조를 추가했습니다.프로젝트에서 웹을 사용하고 컨트롤러 페이지에 사용 지침을 추가했습니다.

하지만 현재 Handler에만 액세스할 수 있습니다.

var context = HttpContext.CurrentHandler; //Current

아이즈HttpContext.CurrentC#4.5에서 사용되지 않음

도움말 페이지를 찾아봤습니다. http://msdn.microsoft.com/en-us/library/system.web.httpcontext.aspx

당신은 포함했습니까?System.Web응용프로그램에서 어셈블리?

using System.Web;

그렇지 않은 경우 다음을 지정합니다.System.Web네임스페이스, 예:

 System.Web.HttpContext.Current

이는 이름이 지정된 컨트롤러의 속성을 참조하고 있기 때문입니다.HttpContext현재 컨텍스트에 액세스하려면 전체 클래스 이름을 사용합니다.

System.Web.HttpContext.Current

그러나 ASP.NET MVC에서 이와 같은 컨텍스트에 액세스하는 것은 매우 권장되지 않으므로, 예, 다음과 같이 생각할 수 있습니다.System.Web.HttpContext.CurrentASP.NET MVC 내부에서 더 이상 사용되지 않습니다.현재 컨텍스트에 액세스하는 올바른 방법은 다음과 같습니다.

this.ControllerContext.HttpContext

또는 컨트롤러 내부에 있는 경우에는 멤버를 사용합니다.

this.HttpContext

여기에 혼란을 완화하기 위해 약간을 추가합니다.Darren Davies의 (인정된) 답변이 더 간단하지만, Andrei의 답변이 MVC 애플리케이션에 더 나은 접근 방식이라고 생각합니다.

Andrei의 대답은 당신이 사용할 수 있다는 것을 의미합니다.HttpContext당신이 사용하고 싶은 대로System.Web.HttpContext.Current예를 들어, 다음 작업을 수행할 경우:

System.Web.HttpContext.Current.User.Identity.Name

대신 다음을 수행해야 합니다.

HttpContext.User.Identity.Name

둘 다 동일한 결과를 달성하지만 MVC 측면에서는 후자가 더 권장됩니다.

이 문제와 관련된 또 다른 유용하고 간단한 정보는 HttpContext 간의 차이입니다.전류 및 컨트롤러.MVC ASP.NET의 컨텍스트입니다.

언급URL : https://stackoverflow.com/questions/18309239/cant-access-to-httpcontext-current

반응형