在Windows Phone 8页面之间传递特殊字符作为字符串

本文关键字:特殊字符 字符串 之间 Windows Phone 8页 | 更新日期: 2023-09-27 18:07:03

我试图将一个特殊字符作为字符串传递,例如用户在文本框中输入的&#

然后将此字符串传递到下一页

NavigationService.Navigate(new Uri(String.Format("/Pages/EditNote.xaml?note={0}", strText), UriKind.Relative));

EditNote.xaml页面然后检查note参数并获得其值

protected override void OnNavigatedTo(NavigationEventArgs e)
{
        base.OnNavigatedTo(e);
        if (NavigationContext.QueryString.ContainsKey("note"))
        {
            noteText = NavigationContext.QueryString["note"];
        }
}

问题是noteText将始终是空的,当它是一个非字母数字字符,如&, #等。

我错过了什么?

在Windows Phone 8页面之间传递特殊字符作为字符串

由于特殊字符在url结构中具有预定义的含义,因此会与带有特殊字符的url + data混淆。

你也可以使用isolatedstoragessettings,如果它在你的上下文中是ok的。

源页面:

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (!settings.Contains("note"))
{
     settings.Add("note", "$#$#$#%#%#????===&&&&&some note Text!#@#@@@  someText @$$@%@%@%@^@@&^*@&(*(**)*)_((_(_(_*(&*(^*&%&%*)");
}
settings.Save();
NavigationService.Navigate(new Uri(@"/Pages/EditNote.xaml", UriKind.Relative));

目的地页面:

string note = string.Empty;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("note"))
{
    note = settings["note"] as string;
}

这里可以传递所有特殊字符

尝试使用UrlEncoding来编码特殊字符