我试图在两个页面之间发送几个字符串。但是,接收页面仅将其解释为一个。关于如何解决这个问题的任何建议。
第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识别为值。
任何帮助?
答案 0 :(得分: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));
}
答案 1 :(得分:0)
您应该使用&amp;处理第二个和任何其他参数。不是吗?就像在URL中一样:/Page1.xml?param1=x¶m2=y