Если какая-либо из ваших строк запроса содержит символы, которые в 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
.