如何传递值包含页面之间的特殊字符?

时间:2014-01-25 05:39:08

标签: c# xaml windows-phone-8 windows-phone

我想在两个页面之间传递这样的值:Black & White。但它有一个赋予它另一种含义的特征。如何传递这个价值?

value = "Black & White";
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + value, UriKind.Relative));

5 个答案:

答案 0 :(得分:0)

你需要使用斜杠转义特殊字符&符号&

替换它:

value = "Black & White";

有了这个:

value = "Black \& White";

答案 1 :(得分:0)

尝试将HttpUtility.UrlEncode方法应用于字符串。

答案 2 :(得分:0)

NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + Server.UrlEncode("Black & White"), UriKind.Relative));

答案 3 :(得分:0)

您应该使用string构建正确的HttpUtility.UrlEncode网址,然后构建Uri

value = "Black & White";
string url = HttpUtility.UrlEncode(value);
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + url, UriKind.Relative));

您应该只编码可能包含无效字符的URL部分。

例如,如果您对"/secondpage.xaml?value="进行编码,则会生成string

  

%2fsecondpage.xaml%3fvalue%3D

答案 4 :(得分:0)

问题标有windows-phone,因此HttpUtility不是一个选项(没有System.Web)。

改为使用Uri.EscapeDataStringUri.UnescapeDataString,如https://stackoverflow.com/a/20224053/463697中所述。