在ASP.NET中,我可以检查是否存在QueryString键/值
if(Request.QueryString["someValue"] != null)
但是,我无法使用NavigationContext.QueryString
if(NavigationContext.QueryString["someValue"] != null)
引发错误 - The given key was not present in the dictionary
if(NavigationContext.QueryString.ContainsKey("someValue"))
也会抛出错误。此代码位于OnNavigatedTo
方法中。
如何检查Windows Phone 8中是否存在键/值?我目前的丑陋,丑陋的解决方法是将每个块包含在try / catch中,catch块中没有代码。如果密钥存在则代码完成,否则会抛出静默捕获的错误。
答案 0 :(得分:1)
通过检查QueryString是否包含密钥应该可以工作,也许你不在适当的上下文中。否则试着获得价值。但是检查错误是否在提取过程中,而不是通过访问NavigationContext或QueryString(可能它们为空)。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if(NavigationContext.QueryString.ContainsKey("someValue"))
{
// string someValue = NavigationContext.QueryString["someValue"];
}
// OR
string someValue = string.Empty;
if (NavigationContext.QueryString.TryGetValue("someValue",out someValue))
{
// someValue contains the value
}
}
答案 1 :(得分:0)
if(NavigationContext.QueryString["someValue"] != null)
应该可以正常工作。你什么时候打电话的?你应该在OnNavigatedTo
中做到这一点。如果你在控制器中使用它,NavigationContext
为空。