2009-03-17 2 views
0

Ok ... URL 라우팅은 정상적으로 작동하지만 대상 페이지의 값을 실제로 읽는 방법을 알 수 없습니다.대상 페이지에서 URL 재 라우팅 값 가져 오기?

여기서 한 가지 예는 RequestContext의 RouteValue 객체 사용을 보여줍니다. 이제 이것들 모두 System.Web.Routing 네임 스페이스에 있지만 모든 사람들이 MVC에만 연결하는 것처럼 보입니다. RequestContext의 출처는 무엇입니까?

이 매개 변수는 어떻게 읽습니까?

퀘스트 문자도 비어 있습니다.

TIA! 케빈

답변

0

내 자신을 해결했습니다. 예. 예! :)

IHttpHandler 인터페이스는 GetHttpHandler 메소드에 RequestContext를 제공하기 시작했습니다.

그래서 기본 페이지 클래스를 수정했습니다. (저는 항상 System.Web.UI.Page와 내 자신의 페이지 사이에 레이어를 둡니다.이 페이지는 BasePage 또는 이와 유사한 목적으로 만 사용되었습니다). 그래서 PVBasePage에 public 속성을 추가하여 RequestContext 객체를 수신했습니다.

IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext) 
{ 
    // create the page object as my own page... 
    var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath 
     , typeof(PVBasePage)) as PVBasePage; 
    // pass in the request context 
    page.RequestContext = requestContext; 
    // return this page in the form of a IHttpHandler 
    return page as IHttpHandler; 
} 

을 그래서 대신에, 샘플 코드와 같이 직접 IHttpHandler를, 나는 내 자신의 페이지로 만들 인스턴스를 생성 다음과 같이

public RequestContext RequestContext { get; set; } 

그런 다음 내 라우팅 클래스 코드입니다. 요청 컨텍스트 속성을 설정하고 페이지를 IHttpHandler 인 호출자에게 반환합니다.

테스트를 거쳤습니다. 우 후!

다른 사람이 길을 가는데 도움이되기를 바랍니다.