如何使用NavigationService.Navigate传递查询字符串变量?

时间:2010-12-29 16:49:41

标签: silverlight silverlight-4.0

问候,

搜索了这个,但没有运气。

我尝试在Silverlight 4应用中传递查询字符串变量(然后检索它们)。首先我尝试了这个

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

但是HtmlPage.Document.QueryString并没有把它们拿起来,因为它们来自锚点(完整的网址看起来像http://localhost:1076/Dashboard.SLTestPage.aspx#/LoanProductionRegion?Elvis=Alive&ImHungry=true)。

我试图将vars放在前面,例如

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

但两者都导致找不到" Page"错误。任何人都知道如何实现我之后的目标吗?

1 个答案:

答案 0 :(得分:2)

您可以在页面中使用OnNavigatedTo方法,然后检查this.NavigationContext.QueryString [“Elvis”](或您喜欢的任何其他参数名称)。

NavigationContext(很像NavigationService)保证在调用OnNavigatedTo时初始化,因此在大多数情况下检查它是最方便的时间。

NavigationContext.QueryString只是一个IDictionary,它预先解析了查询字符串中的键值对。因此,您可以使用IDictionary执行任何操作 - 使用ContainsKey查看是否存在某些内容,在foreach循环中迭代它等等。