如何使用NavigationService.Navigate传递查询字符串变量? [英] How can I pass query string variables with NavigationService.Navigate?

查看:15
本文介绍了如何使用NavigationService.Navigate传递查询字符串变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问候,

已搜索此信息,但没有找到。

我正尝试在我的Silverlight 4应用程序中传递查询字符串变量(然后检索它们)。我先试了一下

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

但HtmlPage.Document.Query字符串不会拾取它们,因为它们位于锚点之后(完整的url看起来像http://localhost:1076/Dashboard.SLTestPage.aspx#/LoanProductionRegion?Elvis=Alive&ImHungry=true)。

我尝试将var放在前面,例如

    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 Not Found"错误。有人知道如何实现我想要的东西吗?

推荐答案

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

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

NavigationConext.QueryString只是一个IDictionary,它已经预先解析了查询字符串中的键-值对。因此,您可以使用IDictionary做任何您想做的事情--使用ContainsKey查看是否存在某些内容,在Foreach循环中迭代它,等等。

这篇关于如何使用NavigationService.Navigate传递查询字符串变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆