【问题标题】: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


    【解决方案1】:

    这个问题被标记为windows-phone,所以 HttpUtility 不是一个选项(没有 System.Web)。

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

    【讨论】:

      【解决方案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";
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-06-14
              • 1970-01-01
              • 2018-04-29
              • 1970-01-01
              • 2016-05-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多