【问题标题】:Windows 7 PHone - KeyNotFoundExceptionWindows 7 PHone - KeyNotFoundException
【发布时间】:2012-08-30 18:44:38
【问题描述】:

在我的 WP7 应用程序中,我试图从一个屏幕导航到另一个屏幕。第一个屏幕包含我要传递给第二个字符串的数据。

在我的按钮点击事件中,我有以下代码(更新):

string data = "blahblahblah";

NavigationService.Navigate(new Uri(String.Format("/popup.xaml?param={0}", Uri.EscapeDataString(data)), UriKind.Relative));

在 popup.xaml 我有以下内容:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    MessageBox.Show(NavigationContext.QueryString["param"]);
}

当我按下按钮时,它会在 NavigationContext.QueryString["param"] 上中断,说明存在 KeyNotFoundException

我做错了什么?

【问题讨论】:

    标签: windows-phone-7


    【解决方案1】:

    您没有使用“=”,也没有对值进行编码。目前查询部分只是

    paramblah blah blah
    

    应该是

    param=blah%20blah%20blah
    

    你可以直接包含=,我倾向于使用Uri.EscapeDataString作为值部分。

    【讨论】:

    • 取出空格并添加 Uri.EscapeDataString 后,我仍然遇到同样的错误。我将更新我的示例以显示我所做的...
    • E@Jeff:您仍然没有 = 符号...只需编辑您的格式字符串以包含它。 (请注意,我个人只会在这里使用字符串连接。)
    • 啊……好吧,我明白你现在的意思了……一旦我将“=”添加到 string.format 部分,它现在就开始显示数据了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多