繁体   English   中英

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

[英]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.EscapeDataStringUri.UnescapeDataString ,如https://stackoverflow.com/a/20224053/463697中所述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM