Как передать переменные строки запроса с помощью NavigationService.Navigate? - PullRequest
2 голосов
/ 29 декабря 2010

Привет,

Искал это, но не повезло.

Я пытаюсь передать переменные строки запроса (а затем получить их) в моем приложении 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));

Но оба приводят к ошибке «Страница не найдена». Кто-нибудь знает, как добиться того, что я ищу?

1 Ответ

2 голосов
/ 30 декабря 2010

Вы можете использовать метод OnNavigatedTo на своей странице, а затем проверить this.NavigationContext.QueryString ["Elvis"] (или любое другое имя параметра, которое вам нравится).

NavigationContext (во многом аналогично NavigationService) гарантируетсябыть инициализированным к моменту вызова OnNavigatedTo, так что в большинстве случаев это наиболее удобное время для его проверки.

NavigationContext.QueryString - это просто IDictionary, который предварительно проанализировал пары ключ-значение в строке запроса.,Таким образом, вы можете делать все, что ожидаете, с IDictionary - используйте ContainsKey, чтобы увидеть, присутствует ли что-то, переберите его в цикле foreach и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...