none
Problema con parametros en Uri RRS feed

  • Pregunta

  • Hola, estoy pasando un parámetro en una Uri para pasarselo a otra página donde lo necesito, este parámetro que paso es un texto de un text box donde se introduce un número de teléfono, el problema lo tengo al recibir los parámetros.

    Cuando introduzco el símbolo + (para introducir el prefijo del país)  en el text box de la primera página cuando lo recibo con el método OnNavigatedTo la url que me llega es correcta pero cuando realizo el NavigationContext.QueryString me devuelve un espacio en lugar del símbolo +.

    Texto del text box:

    +34666666666

    Uri que recibo en onNavigatedTo:

    "/Page.xaml?P=+34666666666"

    Tras realizar el QueryString y almacenar en un string el valor del string es:

     34666666666

     

    He probado con otros simbolos "extraños" y funciona bien, bueno con la almohadilla no me sigue escribiendo nada (como si fuera el simbolo de fin de linea), tambien he probado cambiando los simbolos de posicion en medio y al final del text box y nada.

    Alguna idea de porqué sucede esto.

    viernes, 9 de diciembre de 2011 11:28

Respuestas

  • Hola:

     

    A lo mejor es como matar moscas a cañonazos, pero para pasar variables puedes usar la clase "PhoneApplicationService"

    Como ejemplo, puedes hacer esto:

    Primero de todo, necesitas usar la siguiente referencia:

     

    using Microsoft.Phone.Shell;
    


     

    Y luego...

     


    En la 1º página


     

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
        if (PhoneApplicationService.Current.State.ContainsKey("Dato"))
    { txtPage1.Text = PhoneApplicationService.Current.State["Dato"] as string;
    } base.OnNavigatedTo(e); } protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) { PhoneApplicationService.Current.State["Dato"] = txtPage1.Text;
    base.OnNavigatedFrom(e); }


     

     

     

    En la 2º página

     

     

    override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
            if (PhoneApplicationService.Current.State.ContainsKey("Dato"))
    
            {
    
                   txtPage2.Text = PhoneApplicationService.Current.State["Dato"] as string;
    
            }
    
            base.OnNavigatedTo(e);
    
    }
    
     
    
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
            PhoneApplicationService.Current.State["Dato"] = txtPage2.Text;
    
            base.OnNavigatedFrom(e);
    
    }
    


     

    Un saludo



    • Marcado como respuesta antoni_mur lunes, 12 de diciembre de 2011 7:34
    • Editado cgaliana lunes, 12 de diciembre de 2011 20:10
    viernes, 9 de diciembre de 2011 12:40

Todas las respuestas

  • Hola:

     

    A lo mejor es como matar moscas a cañonazos, pero para pasar variables puedes usar la clase "PhoneApplicationService"

    Como ejemplo, puedes hacer esto:

    Primero de todo, necesitas usar la siguiente referencia:

     

    using Microsoft.Phone.Shell;
    


     

    Y luego...

     


    En la 1º página


     

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
        if (PhoneApplicationService.Current.State.ContainsKey("Dato"))
    { txtPage1.Text = PhoneApplicationService.Current.State["Dato"] as string;
    } base.OnNavigatedTo(e); } protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) { PhoneApplicationService.Current.State["Dato"] = txtPage1.Text;
    base.OnNavigatedFrom(e); }


     

     

     

    En la 2º página

     

     

    override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
            if (PhoneApplicationService.Current.State.ContainsKey("Dato"))
    
            {
    
                   txtPage2.Text = PhoneApplicationService.Current.State["Dato"] as string;
    
            }
    
            base.OnNavigatedTo(e);
    
    }
    
     
    
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    
    {
    
            PhoneApplicationService.Current.State["Dato"] = txtPage2.Text;
    
            base.OnNavigatedFrom(e);
    
    }
    


     

    Un saludo



    • Marcado como respuesta antoni_mur lunes, 12 de diciembre de 2011 7:34
    • Editado cgaliana lunes, 12 de diciembre de 2011 20:10
    viernes, 9 de diciembre de 2011 12:40
  • Ok, muchas gracias.
    lunes, 12 de diciembre de 2011 7:34