0

我正在尝试在两页之间发送几个字符串。但是,接收页面仅将其解释为一个。关于如何解决此问题的任何建议。

第 1 页

private void button1_Click(object sender, RoutedEventArgs e)
        {
            string urlofdestinationpage = "/Page1.xaml";
            urlofdestinationpage += string.Format("?SelectedIndex=" + playersList.SelectedIndex);
            urlofdestinationpage += string.Format("?Player1=" + textBox1.Text);
            NavigationService.Navigate(new Uri(urlofdestinationpage, UriKind.Relative));
        }

第2页

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            IDictionary<string, string> x = this.NavigationContext.QueryString;
            String size = Convert.ToString(x["SelectedIndex"]);
            MessageBox.Show(size);
String player = Convert.ToString(x["Player1"]);
                MessageBox.Show(player1);
            base.OnNavigatedTo(e);
        }

接收页面输出一条消息“0?Player1=”并且不将 player1 识别为值。

有什么帮助吗?

4

2 回答 2

2

您的 URI 格式不正确。表示参数的?开头,每个参数必须用 分隔&

您正在构建的 URI 是:

Page1.xaml?SelectedIndex=0?Player1=...

您应该构造的 URI 是:

Page1.xaml?SelectedIndex=0&Player1=...

private void button1_Click(object sender, RoutedEventArgs e)
{
    string urlofdestinationpage = "/Page1.xaml";
    urlofdestinationpage += string.Format("?SelectedIndex=" + playersList.SelectedIndex);
    urlofdestinationpage += string.Format("&Player1=" + textBox1.Text);
    NavigationService.Navigate(new Uri(urlofdestinationpage, UriKind.Relative));
}
于 2013-01-13T17:21:20.463 回答
0

您应该使用 & not 应用第二个参数和任何附加参数?就像在 URL 中一样:/Page1.xml?param1=x¶m2=y

于 2013-01-13T17:20:52.053 回答