如何使用NavigationService.Navigate传递查询字符串变量? [英] How can I pass query string variables with NavigationService.Navigate?
本文介绍了如何使用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屋!
查看全文