【问题标题】:How to pass a value contains special characters between pages?如何在页面之间传递包含特殊字符的值?
【发布时间】:2014-02-16 07:12:41
【问题描述】:
我想在两个页面之间传递一个像这样的值:Black & White。但它具有赋予它另一种含义的特征。如何传递该值?
value = "Black & White";
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + value, UriKind.Relative));
【问题讨论】:
标签:
c#
xaml
windows-phone-8
windows-phone
【解决方案2】:
您应该使用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
【解决方案3】:
NavigationService.Navigate(new Uri("/secondpage.xaml?value=" + Server.UrlEncode("Black & White"), UriKind.Relative));
【解决方案4】:
尝试对字符串应用 HttpUtility.UrlEncode 方法。
【解决方案5】:
您需要使用斜线转义特殊字符和符号&:
替换这个:
value = "Black & White";
有了这个:
value = "Black \& White";