2011-08-25 22 views
6

Tôi cố gắng để gửi các giá trị giữa các trang sử dụng:Windows Phone 7 - đi qua các giá trị giữa các trang

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

Ở đây, giá trị công ty và thành phố được thông qua đến trang tiếp theo, bằng cách nào đó tên công ty như "ABC & Ltd "không chuyển đúng cách, nó chỉ chuyển" ABC "sang trang tiếp theo. Về cơ bản, phần sau "&" bị loại bỏ.

Có tùy chọn nào ở đây để định dạng này không ??? Hoặc tôi nên viết một logic cho điều này?

Trợ giúp cần thiết!

Cảm ơn

Trả lời

6

Nếu bất kỳ của chuỗi truy vấn của bạn chứa các ký tự được coi là không hợp lệ trong một Uri gì bạn đang làm sẽ thất bại, như bạn đã phát hiện ra. Trước tiên, bạn cần sử dụng Uri.EscapeDataString để tránh bất kỳ ký tự không hợp lệ nào. Thay đổi mã bạn đã đăng như sau:

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

Các thoát chuỗi sẽ được tự động unescaped khi bạn đọc chúng bằng cách sử NavigationContext.QueryString, do đó không cần phải gọi Uri.UnescapeDataString một cách rõ ràng.

+0

Uri.EscapeDataString Đã làm việc !!! Cảm ơn rất nhiều – Sri

+0

Tại sao bạn sử dụng EscapeDataString thay vì EscapeUriString? –

+0

@ Clément Tôi đọc trên một số blog ở đâu đó mà các công trình trước đây trong một số trường hợp mà sau này không, khi nói đến chuyển hướng trên Windows Phone. Rất tiếc, tôi không thể tìm thấy liên kết ngay bây giờ. – Praetorian

2

Nhân vật & được coi là một nhân vật đặc biệt trong chuỗi truy vấn như một phương tiện để tách các giá trị. Nó cần phải được thoát vào %26.

Để biết thêm thông tin về cách thoát URL dễ dàng bằng cách sử dụng Uri.EscapeUriString.

Ví dụ:

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

Cám ơn đáp ... Đó là hữu ích !! – Sri

Các vấn đề liên quan