我想在两个页面之间传递这样的值:Black & White
。但它有一个赋予它另一种含义的特征。如何传递这个价值?
value = "Black & White";
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + value, UriKind.Relative));
答案 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.EscapeDataString
和Uri.UnescapeDataString
,如https://stackoverflow.com/a/20224053/463697中所述。