program story

HttpContext.Current에 액세스 할 수 없습니다.

inputbox 2020. 12. 10. 19:56
반응형

HttpContext.Current에 액세스 할 수 없습니다.


이 질문에 이미 답변이 있습니다.

C # 4.5를 사용하는 MVC4 프로젝트에서 HttpContext.Current에 액세스 할 수 없습니다.

내 프로젝트에서 System.Web에 대한 참조를 추가하고 컨트롤러 페이지에 사용 지침을 추가했습니다.

하지만 currentHandler에만 액세스 할 수 있습니다.

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.Current되지 않으므로 ASP.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 측면 에서 후자가 더 권장됩니다.

이 문제에 관한 또 다른 좋고 직접적인 정보 는 MVC ASP.NET에서 HttpContext.Current와 Controller.Context의 차이점 입니다.

참고 URL : https://stackoverflow.com/questions/18309239/cant-access-to-httpcontext-current

반응형