2011-08-25 41 views
6

kullanıyorum sayfaları arasında değerleri göndermek için çalışıyorum arasındaki değerlerin geçirilmesi:Windows Phone 7 - sayfalarında

NavigationService.Navigate(new Uri("/ABC.xaml?name=" + Company + "&city=" + City , UriKind.Relative)); 
İşte

Şirket ve Şehir değerleri bir sonraki sayfaya geçer ABC" gibi, bir şekilde Şirket isimleri & Ltd "düzgün bir şekilde geçmiyor, sadece" ABC "bir sonraki sayfaya geçer. Temel olarak "&" dan sonraki bölüm bırakılır.

Bunu biçimlendirmek için bir seçenek var mı? Veya bunun için bir mantık yazmalı mıyım?

Yardım gerekli!

Teşekkür

cevap

6

. Öncelikle yasa dışı karakterlerden kaçmak için Uri.EscapeDataString'u kullanmanız gerekir. Aşağıdaki yayınladığınız kodu değiştirin:

NavigationService.Navigate(new Uri(String.Format("/ABC.xaml?name={0}&city={1}", 
      Uri.EscapeDataString(Company), Uri.EscapeDataString(City)), 
      UriKind.Relative)); 

bunları NavigationContext.QueryString kullanarak okurken dizeleri otomatik çıkış kullanılmayan vardır kaçtı, bu yüzden açıkça Uri.UnescapeDataString aramaya gerek yoktur. yanıt için de size size Uygulamanın tamamında erişebilirsiniz küresel değerleri tanımlayabilirsiniz App.xaml.cs kod parametrelerini geçirmek Could

+0

Uri.EscapeDataString Çalışıyor! Çok teşekkürler – Sri

+0

Neden EscapeUnString yerine EscapeDataString kullanıyorsunuz? –

+0

@ Clément Bazı bloglarda, bir kısmının, Windows Phone'da gezinme söz konusu olduğunda, ikincisinin çalışmadığı bazı durumlarda çalıştığını okudum. Maalesef şu anda bağlantıyı bulamıyorum. – Praetorian

2

& karakter değerlerini ayırarak bir aracı olarak sorgu dizeleri özel bir karakter olarak ele alınır. %26'a kaçması gerekiyor.

Uri.EscapeUriString'u kullanarak URL'lerden nasıl kolayca ayrılabileceğiniz hakkında daha fazla bilgi için. Örneğin

: sorgu dizeleri herhangi size keşfettim gibi başarısız olur ne yaptığınızı bir Uri geçersiz sayılır karakterler içeriyorsa

string Company = "ABC & D"; 
string City = "Falls Church"; 
string escaped = Uri.EscapeUriString("/ABC.xaml?name=" + Company + "&city=" + City); 
var uri = new Uri(escaped, UriKind.Relative); 
+0

Teşekkürler ... Bu yararlı oldu !! – Sri