Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows mobile 8中通过自定义URL将参数传输到页面?_C#_Windows Phone 8_Parameters_Uri_Custom Url - Fatal编程技术网

C# 在windows mobile 8中通过自定义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(如果它包含身份验证或其他内容)告诉您应该加载哪个页面,然后加载页面。此页面是函数式的,但我的

我没有找到我要做什么的答案

我正在通过自定义url启动我的应用程序(如“myurl://...)我想得到参数

我的应用程序通过如下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);