C# 在windows mobile 8中通过自定义URL将参数传输到页面?
我没有找到我要做什么的答案 我正在通过自定义url启动我的应用程序(如“myurl://...)我想得到参数 我的应用程序通过如下url调用:C# 在windows mobile 8中通过自定义URL将参数传输到页面?,c#,windows-phone-8,parameters,uri,custom-url,C#,Windows Phone 8,Parameters,Uri,Custom Url,我没有找到我要做什么的答案 我正在通过自定义url启动我的应用程序(如“myurl://...)我想得到参数 我的应用程序通过如下url调用: myurl://authentication?login=foo&options=bar&returnurl=http%3A%2F%2Fwww.foobarbaz.com 调用时,一个名为AssociationUriMapper的类会根据url(如果它包含身份验证或其他内容)告诉您应该加载哪个页面,然后加载页面。此页面是函数式的,但我的
myurl://authentication?login=foo&options=bar&returnurl=http%3A%2F%2Fwww.foobarbaz.com
调用时,一个名为AssociationUriMapper的类会根据url(如果它包含身份验证或其他内容)告诉您应该加载哪个页面,然后加载页面。此页面是函数式的,但我的问题是需要获取url参数,如登录名、选项和返回url。因此,我的问题是,如何传输这些参数?或者至少,如何传输整个url?(我有自己的url解析器来获取参数)
我想做的是,当我告诉我的AssociationRimapper它应该调用哪个页面时,我希望它将url传输到页面的后台代码。在我的AssociationRimapper类中,代码是:
if (tempUri.Contains("myurl"))
{
string urlCalledType;
urlCalledType = "";
if (tempUri.Contains("authentication"))
urlCalledType = "authentication";
if (tempUri.Contains("foo"))
urlCalledType = "foo";
switch (urlCalledType)
{
case "authentication":
return new Uri("/Views/AuthenticationView.xaml", UriKind.Relative);
case "foo":
return new Uri("/Views/FooView.xaml", UriKind.Relative);
default:
return new Uri("/MainPage.xaml", UriKind.Relative);
}
}
我知道我的代码没有得到很好的优化,但这与目前的情况无关,这是一个测试应用程序,而不是我将发布的最终应用程序
那么,我应该添加什么以及在哪里添加,以便当我转到AuthenticationView.xaml时,使应用程序打开的url被传输到AuthenticationView.xaml.cs
我希望我的问题清楚易懂,感谢所有能提供帮助的人!您可以在AuthenticationView.xaml.cs中执行此操作(如果您的应用程序打开时登录的是该页面) 多个参数的登录方式相同
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string parameterValue = NavigationContext.QueryString["parameter"];
}
或者这个:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string parameter = string.Empty;
if (NavigationContext.QueryString.TryGetValue("parameter", out parameter))
{
//do something with the parameter
}
}
是的,我刚才在看一个链接,该链接解释了如何按照您建议的第一种方式进行操作。对于可能寻求此问题答案的其他人,必须在AssociationUriApper类中以这种方式传递“参数”:return new Uri(“/Views/FooView.xaml?parameter=bar”,UriKind.Relative);