[英]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代碼,您可以在其中定義可在整個應用中訪問的全局值,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.