[英]How to pass a value contains special characters between pages?
我想在两个页面之间传递一个Black & White
值。 但是它具有一个赋予它另一种含义的字符。 如何传递那个值?
value = "Black & White";
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + value, UriKind.Relative));
您需要转义特殊字符& &
使用斜杠:
替换为:
value = "Black & White";
有了这个:
value = "Black \& White";
尝试将HttpUtility.UrlEncode方法应用于字符串。
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + Server.UrlEncode("Black & White"), UriKind.Relative));
您应该使用HttpUtility.UrlEncode
构造适当的string
URL,然后构造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
该问题用windows-phone
标记,因此HttpUtility不是一个选择(没有System.Web)。
改用Uri.EscapeDataString
和Uri.UnescapeDataString
,如https://stackoverflow.com/a/20224053/463697中所述 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.