Windows Phone 7 - passing values between pages

后端 未结 3 1000
情歌与酒
情歌与酒 2020-12-19 09:06

I am trying to send the values between the pages using :

NavigationService.Navigate(new Uri(\"/ABC.xaml?name=\" + Company + \"&city=\" + City , UriKind.R         


        
相关标签:
3条回答
  • 2020-12-19 09:44

    If any of your query strings contain characters that are considered invalid in a Uri what you're doing will fail, as you've discovered. You need to use Uri.EscapeDataString to escape any illegal characters first. Change the code you've posted to the following:

    NavigationService.Navigate( new Uri( String.Format( "/ABC.xaml?name={0}&city={1}",
              Uri.EscapeDataString( Company ), Uri.EscapeDataString( City ) ), 
              UriKind.Relative ) );
    

    The escaped strings are automatically unescaped when you read them using NavigationContext.QueryString, so there's no need to call Uri.UnescapeDataString explicitly.

    0 讨论(0)
  • 2020-12-19 09:56

    The & character is treated as a special character in query strings as a means of separating values. It needs to be escaped into %26.

    For more information on how to escape URLs easily using Uri.EscapeUriString.

    For example:

    string Company = "ABC & D";
    string City = "Falls Church";
    string escaped = Uri.EscapeUriString("/ABC.xaml?name=" + Company + "&city=" + City);
    var uri = new Uri(escaped, UriKind.Relative);
    
    0 讨论(0)
  • 2020-12-19 09:58

    You Could also pass parameters to you App.xaml.cs code where you can define global values that you can access throughout your app,

    http://www.developer.nokia.com/Blogs/Community/2011/08/25/passing-data-between-pages-in-windows-phone-7/

    0 讨论(0)
提交回复
热议问题