我正在尝试传递一个特殊字符,例如用户在文本框中输入的&
或#
字符串。
然后将此字符串传递到下一页
NavigationService.Navigate(new Uri(String.Format("/Pages/EditNote.xaml?note={0}", strText), UriKind.Relative));
然后,EditNote.xaml
页面将检查备注参数并获取其值
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (NavigationContext.QueryString.ContainsKey("note"))
{
noteText = NavigationContext.QueryString["note"];
}
}
问题是,当noteText是&
、#
等非字母数字字符时,它将始终为空。
我遗漏了什么?
发布于 2013-12-18 22:09:46
由于特殊字符在url结构中具有预先定义的含义,因此会与带有特殊字符的url + data混淆。
您也可以使用IsolatedStorageSettings,如果它在您的上下文中是可以的。
源页:
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;
}
在这里,您可以传递所有特殊字符。
发布于 2013-04-02 03:54:27
尝试使用UrlEncoding对特殊字符进行编码。
https://stackoverflow.com/questions/15738345
复制相似问题