현재 시스템을 가져옵니다.HttpContext의 Web.UI.Page?
이것은 사실 두 부분으로 구성된 질문입니다.먼저 HttpContext를 수행합니다.전류는 현재 시스템에 해당합니다.UI.페이지 개체?
그리고 첫 번째와 관련된 두 번째 질문은 현재 페이지가 인터페이스를 구현하는지 확인하는 데 다음을 사용할 수 없는 이유입니다.
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
일반적으로 일부 컨트롤은 SharePoint 웹 파트로 실행되는지 아니면 As의 일부로 실행되는지 알아야 합니다.넷 프레임워크.
컨트롤 자체에 대한 참조를 전달하도록 하고 컨트롤의 Page 속성을 확인하여 문제를 해결했지만, 여전히 위의 내용이 작동하지 않는 이유가 궁금합니다.
컴파일러 오류: 시스템을 변환할 수 없습니다.Web.HttpContext 대상...참조 변환, 복싱 변환, 언박스 변환, 래핑 변환 또는 널 형식 변환을 통한 IWebBase.
아니요, HttpContext의 MSDN에서 왔습니다.Current: "현재 HTTP 요청에 대한 HttpContext 개체를 가져오거나 설정합니다."
즉, 페이지가 아닌 HttpContext 개체입니다.
다음을 사용하여 HttpContext를 통해 Page 개체에 액세스할 수 있습니다.
Page page = HttpContext.Current.Handler as Page;
if (page != null)
{
// Use page instance.
}
찾으시는 제품HttpContext.Handler
페이지에서 IHTTPHandler를 구현하므로 현재 실행 중인 페이지에 대한 참조를 얻을 수 있습니다.당신은 그것을 캐스팅하거나 적어도 당신이 찾고 있는 특정 유형에 캐스팅을 시도해야 할 것입니다.
HttpContext.Current
HttpContext의 싱글톤 인스턴스만 반환합니다.따라서 페이지가 아니며 페이지가 될 수도 없습니다.
사용할 수 있습니다.HttpContext.Current.CurrentHandler
현재 실행 중인 정확한 페이지를 원하는 경우.예를 들어 Default.aspx에 대한 요청이 전송되지만 오류가 발생하면Response.Transfer
사용자 지정 ErrorHandler.aspx 페이지로 이동합니다. CurrentHandler
ErrorHandler.aspx의 인스턴스를 반환합니다(오류 뒤에 호출되는 경우).HttpContext.Current.Handler
Default.aspx 인스턴스를 반환합니다.
제 답변을 참조하십시오.
HttpContext가 필요한 이유.현재의.처리기가 null입니까?
당신 문제를 해결했을 수도 있습니다.
언급URL : https://stackoverflow.com/questions/58123/get-current-system-web-ui-page-from-httpcontext
'programing' 카테고리의 다른 글
wp 정의되지 않은 함수 add_infined_section (0) | 2023.06.07 |
---|---|
Ts-node : 구문 오류: 모듈 외부에서 가져오기 문을 사용할 수 없습니다. (0) | 2023.06.07 |
facet_grid 플롯의 스트립 텍스트를 어떻게 조작할 수 있습니까? (0) | 2023.06.07 |
'Microsoft' 파일 또는 어셈블리를 로드할 수 없습니다.보고서 뷰어.웹 양식' (0) | 2023.06.07 |
HttpContext에 액세스할 수 없습니다.현재의 (0) | 2023.06.07 |