C# 如何在不使用Windows Phone 7中的Uri的情况下将字符串变量传递到另一个页面?

C# 如何在不使用Windows Phone 7中的Uri的情况下将字符串变量传递到另一个页面?,c#,windows-phone,uri,C#,Windows Phone,Uri,我要从一个WP页面传递到另一个WP页面的字符串包含字符“#”。因此,当我使用Uri传递这个字符串时,从“#”开始的字符串的其余部分将被截断,从而导致json解析错误。那我怎么才能传递这个字符串呢?我不想修改字符串并传递它,因为下载的字符串因用户而异 这是我的密码: NavigationService.Navigate(new Uri("/Home.xaml?jsonData=" + text, UriKind.Relative)); 以下是“text”变量中包含的json字符串: {"name

我要从一个WP页面传递到另一个WP页面的字符串包含字符“#”。因此,当我使用Uri传递这个字符串时,从“#”开始的字符串的其余部分将被截断,从而导致json解析错误。那我怎么才能传递这个字符串呢?我不想修改字符串并传递它,因为下载的字符串因用户而异

这是我的密码:

NavigationService.Navigate(new Uri("/Home.xaml?jsonData=" + text, UriKind.Relative));
以下是“text”变量中包含的json字符串:

{"name":"RALPH K. TELL","course":"","attendence":[{"name":"OBJECT ORIENTED ANALYSIS AND DESIGN","type":"Theory","conducted":"14","present":"14"},{"name":"C#AND.NET FRAMEWORK","type":"Theory","conducted":"17","present":"16"}]}
以下是我在下一页中获取值的方法:

String jdata = NavigationContext.QueryString["jsonData"];

如果您的任何查询字符串包含在Uri中被视为无效的字符,那么您正在执行的操作将失败,正如您所发现的那样。首先需要使用转义任何非法字符。 将您发布的代码更改为以下内容:

NavigationService.Navigate(new Uri("/Home.xaml?jsonData=" + Uri.EscapeDataString(text), UriKind.Relative));
看看这些线


希望有帮助

您是否尝试了
Uri.EscapeDataString(…)
要传递的数据?@RowlandShaw没有。就这么做了,而且成功了。谢谢:)