Запуск асинхронного (статистического) запроса HyperlinkButton не зарегистрирован - PullRequest
0 голосов
/ 08 июля 2010

У меня есть HyperlinkButton в моем проекте Silverlight.При нажатии на ссылку откроется URL-адрес на новой странице:

<HyperlinkButton x:Name="Button1" Content="Click" 
  TargetName="_blank" Click="Button1_Click" 
  NavigateUri="http://www.example.com" />

Когда я нажимаю кнопку, я хочу, чтобы (второй) асинхронный запрос был отправлен на сервер статистики:

private void Button1_Click(object sender, RoutedEventArgs e)
{
   WebClient webClient = new WebClient();
   webClient.Headers["content-type"] = "application/x-www-form-urlencoded";
   webClient.Encoding = Encoding.UTF8;
   webClient.UploadStringAsync(destURI, "POST", "action=click" + 
       "&id=" + id);
}

Однако, если я проверяю с FireBug, этот запрос никогда не запускается.Как я могу заставить этот запрос работать?

Примечание. Я уже проверил, что страница назначения может принимать запросы.В пункте назначения указаны правильные значения clientaccesspolicy.xml и crossdomain.xml.

.

Ответы [ 2 ]

0 голосов
/ 08 июля 2010

Argh. Проблема с Firebug. Окно браузера теряет фокус, и запросы больше не фиксируются. Wireshark показывает, что запрос срабатывает правильно.

0 голосов
/ 08 июля 2010

NavigateUri, похоже, имеет приоритет над запуском обработчика событий для Click, поэтому вам нужно всего лишь удалить NavigateUri и обработать все внутри самого события Click.* Вы можете использовать функцию HtmlPage.Window.Navigate() для создания нового окна, установив цель на _blank, так же, как вы делали это в XAML для HyperlinkButton.

...