2010-12-29 2 views
2

인사말,NavigationService.Navigate를 사용하여 쿼리 문자열 변수를 전달하는 방법은 무엇입니까?

검색된 내용은 행운을 빕니다.

내 Silverlight 4 앱에서 쿼리 문자열 변수를 전달한 다음 (검색 한 다음) 가져 오려고합니다. 우선이

this.NavigationService.Navigate(new Uri("/LoanProductionRegion?Elvis=Alive&ImHungry=true", UriKind.Relative)); 

을 시도하지만 HtmlPage.Document.QueryString을 그들이 앵커 (전체 URL이 http://localhost:1076/Dashboard.SLTestPage.aspx#/LoanProductionRegion?Elvis=Alive&ImHungry=true 모양) 이후에 와서 때문에 그들을 선택하지 않습니다.

나는

this.NavigationService.Navigate(new Uri("?Elvis=Alive&ImHungry=true/LoanProductionRegion", UriKind.Relative)); 
    this.NavigationService.Navigate(new Uri("/?Elvis=Alive&ImHungry=true/LoanProductionRegion", UriKind.Relative)); 

로, 앞에있는 바르 넣어 등을 시도하지만 모두 결과 오류 "페이지를 찾을 수 없습니다." 누구나 내가 무엇을 얻는 지 어떻게 알 수 있습니까?

+0

체크 아웃 했습니까 ... http : //blogs.msdn .com/b/dphill/archive/2009/04/28/silverlight-navigation-part-3.aspx –

+0

@Aaron : 이전에는 아니 었습니다. 감사. 그래도 간단한 일이 무엇인지에 대해 꽤 큰 의무가있는 것 같습니다. 그 블로그를 보는 것은 나에게 생각을 줬다. 해키지만 OnriveEventArgs에서 Uri를 OnNavigatedTo 메서드로 가져 와서 구문 분석 할 수 있습니다. –

답변

2

페이지에서 OnNavigatedTo 메서드를 사용한 다음 this.NavigationContext.QueryString [ "Elvis"] (또는 원하는 다른 매개 변수 이름)을 검사 할 수 있습니다.

NavigationContext (NavigationService와 비슷 함)는 OnNavigatedTo가 호출 될 때까지 초기화되므로 대부분 검사 할 때 가장 편리합니다.

NavigationContext.QueryString은 단순히 쿼리 문자열의 키 - 값 쌍을 미리 파싱 한 IDictionary입니다. 따라서 IDictionary를 사용하여 원하는 모든 작업을 수행 할 수 있습니다. ContainsKey를 사용하여 항목이 있는지, foreach 루프에서 반복되는지 등을 확인합니다.

+0

니스! 감사. 나 자신을 분석 할 필요가 없습니다. –

관련 문제