2013-10-30 52 views
1

嗨。我在第一页上的代码:使用查询字符串来获取参数c#windows phone 7

NavigationService.Navigate(new Uri("/Game/animais/A1.xaml?anim=cabra",UriKind.Relative)); 

而其他的网页我有这样的:

String anim = null; 
anim = this.NavigationContext.QueryString["anim"]; 

问题是,当它得到这个代码我得到这个错误:

anim = this.NavigationContext.QueryString["anim"]; - nullreferenceexception was unhandled

我不知道什么是错的:■

回答

0

试试这个 希望这将帮助你

anim = Uri.UnescapeDataString(NavigationContext.QueryString["anim"]); 
+0

没有工作,得到了同样的错误,NullReferenceException异常是未处理 – dragonfoca

0

使用的OnNavigatedTo事件中检索的QueryString值,NavigationContext被初始化此事件上

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    string anim = string.Empty; 

    if (NavigationContext.QueryString.TryGetValue("anim",out anim)) 
    { 
     // do something 
    } 
} 
+0

不工作,得到了同样的错误,NullReferenceException异常是未处理 – dragonfoca

0

传递价值:在Firstpage.xaml.cs添加以下

最简单的方法传递参数只是使用一个字符串,如:

private void btnNavigate_Click(object sender, RoutedEventArgs e) 
    { 
    string variable="test"; 
    string url = string.Format("/Game/animais/A1.xaml?parameter={0}", variable.toString()); 
NavigationService.Navigate(new Uri(url, UriKind.Relative)); 
    } 

获取值:在另一个.xaml.cs中添加以下内容

注意:重写OnNavigatedTo非常重要,然后可以使用NavigationContext获取传递的参数。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    string parameterValue = string.Empty; 
    parameterValue = NavigationContext.QueryString["parameter"]; 
} 

我认为它为你工作......

+1

有了这个,我得到这个 保护覆盖无效的OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs E) { base.OnNavigatedTo(E); 的parameterValue = NavigationContext.QueryString [“动画”] - keynotfoundexception了未处理 } – dragonfoca

+0

我认为你错了传递关键 – MansinhDodiya

+0

检查我编辑的代码 – MansinhDodiya

0

如果您放置在Windows_Loaded事件代码,它的工作原理。

相关问题