簡體   English   中英

Windows Phone 7 - 在頁面之間傳遞值

[英]Windows Phone 7 - passing values between pages

我試圖使用以下命令在頁面之間發送值:

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

這里公司和城市的價值被傳遞到下一頁,不知何故公司名稱如“ABC&Ltd”沒有正確傳遞,它只是將“ABC”傳遞到下一頁。 基本上“&”之后的部分被刪除。

這里有格式嗎? 或者我應該為此寫一個邏輯?

需要幫助 !

謝謝

如果您的任何查詢字符串包含在Uri中被視為無效的字符,那么您所做的事情將會失敗,正如您所發現的那樣。 您需要先使用Uri.EscapeDataString來轉義任何非法字符。 將您發布的代碼更改為以下內容:

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

當您使用NavigationContext.QueryString讀取它們時,轉義字符串會自動轉義 ,因此無需顯式調用Uri.UnescapeDataString

&字符在查詢字符串中被視為特殊字符,作為分隔值的方法。 它需要轉義為%26

有關如何使用Uri.EscapeUriString輕松轉義URL的更多信息。

例如:

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);

您還可以將參數傳遞給App.xaml.cs代碼,您可以在其中定義可在整個應用中訪問的全局值,

http://www.developer.nokia.com/Blogs/Community/2011/08/25/passing-data-between-pages-in-windows-phone-7/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM