LinkButtons в IE10 не выполняет обратную отправку

Я пытаюсь добавить простой LinkButton на страницу ASP.NET 4, но он не вызывает postback в IE10. Код выглядит следующим образом.

HTML:

<form id="form1" runat="server">
<div>
  <asp:LinkButton ID="LinkButton1" runat="server"
    OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
  <br />
  <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>    

C#:

protected void Page_Load(object sender, EventArgs e) { }

protected void LinkButton1_Click(object sender, EventArgs e)
{
  Label1.Text = DateTime.Now.ToString();
}

Как видите, это обычная страница. Однако я не могу заставить LinkButton вызывать метод после обновления до Win8 и IE10. Это отлично работает с Firefox.

Любые идеи, что мне нужно сделать?


person Rob Mason    schedule 16.09.2012    source источник
comment
1) Проверьте наличие ошибок сценария в IE 10, 2) попробуйте запустить IE 8 или 9 (инструменты разработчика F12).   -  person Tim Medora    schedule 16.09.2012
comment
Я не вижу никаких ошибок сценария в строке состояния IE10 и с помощью инструментов разработчика, а изменение браузера на IE7/8/9 не влияет на обратную передачу кнопки ссылки. Я также попытался изменить строку пользовательского агента на IE8/9, чтобы посмотреть, помогло ли это.   -  person Rob Mason    schedule 16.09.2012


Ответы (6)


Это проблема исправления/обновления сервера. ASP.NET не выдал правильный JavaScript для запуска вашего браузера. Он не знает о версиях IE новее, чем IE9.

Смотрите пост Скотта Хансельмана по этому поводу:

ASP.NET не может обнаружить IE10, из-за чего _doPostBack является неопределенной ошибкой JavaScript или поддерживает положение полосы прокрутки FF5

Скотт отмечает в этой публикации 2011 года, что исправление следует распространять через Центр обновления Windows. Убедитесь, что на вашем сервере установлены последние обновления службы .NET Framework из Центра обновления Windows. Если нет, вы можете скачать исправление или дополнительные сведения о Microsoft KB.

Исправление обновит эти .browser файлы, позволяя ASP.NET создавать правильную разметку и JavaScript.

%WinDir%\Microsoft.NET\Framework(64?)\v4.0.30319\CONFIG\Browsers\ie.browser

Это будет содержать такие элементы:

  <!-- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -->
  <browser id="IE10Plus" parentID="IE6Plus">
    <identification>
      <capability name="majorversion" match="\d{2,}" />
    </identification>
    <capabilities>
      <capability name="jscriptversion" value="6.0" />
    </capabilities>
  </browser>
person p.campbell    schedule 06.02.2013
comment
Небольшое дополнение, о котором упоминает Скотт Хансельман, заключается в том, что если по какой-то причине у вас нет доступа к системным файлам, вы всегда можете добавить обновленные определения на сам веб-сайт, используя папку asp WEB_BROWSER. Это можно найти в разделе ИСПРАВЛЕНИЯ ТОЛЬКО ДЛЯ САЙТА. - person mrd3650; 03.10.2013
comment
@ mrd3650 вы правы, но это папка App_Browsers, а не web_browser - person Mark Cooper; 26.08.2015
comment
@Mark Cooper Спасибо за внимание - person mrd3650; 27.08.2015

Пояснение к ошибке:

http://support.microsoft.com/kb/2600088

Если вам нужна прямая загрузка (Framework 4.0) исправления:

http://hotfixv4.microsoft.com/.NET%20Framework%204.0%20-%20Windows%20XP,%20Windows%202003,%20Windows%20Vista,%20Windows%20Server%202008,%20Win7,%20Windows%20Server%202008%20R2%20(MSI)/nosp/DevDiv953277/30319.504/free/436907_intl_x64_zip.exe

person Adriano Galesso Alves    schedule 28.02.2013
comment
Не давайте прямую ссылку на exe, ссылку на страницу с описанием хотфикса - person Piddu; 26.11.2013
comment
Объяснение как раз и является темой этого выпуска - person Adriano Galesso Alves; 11.12.2013
comment
Но исполняемые файлы могут быть отозваны или обновлены, а ссылки на KB должны остаться. Кроме того, ему может не понадобиться эта конкретная версия файла. - person Zhaph - Ben Duguid; 10.03.2015
comment
Zhaph Я добавил объяснение, но я думаю, что оно помогло некоторым людям, это тот момент, о котором нам нужно позаботиться. - person Adriano Galesso Alves; 10.03.2015

У вас есть патч, который вводит обновленные определения в файлы определений браузера для Internet Explorer и Mozilla Firefox. Файлы определения браузера хранятся в следующих папках, в зависимости от установленной версии Microsoft Framework le.NET:

Для 32-битных версий Framework 4.0.NET

%WinDir%\Microsoft.NET\Framework\v4.0.30319\CONFIG\Браузеры

Для 64-битных версий Framework 4.0.NET

%WinDir%\Microsoft.NET\Framework64\v4.0.30319\CONFIG\Браузеры

Загрузите исправление здесь: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2600088&kbln=fr

Ссылка: http://support.microsoft.com/kb/2600088

person Aghilas Yakoub    schedule 16.09.2012
comment
Спасибо, я попробую. Похоже, что служба проверки изображений не работает, поэтому я не могу загрузить исправление в данный момент, и похоже, что оно доступно только для Win7. Я использую Win8 RTM - person Rob Mason; 17.09.2012
comment
Когда я пытаюсь запустить это исправление, я получаю: KB2600088 не применяется или заблокирован другим условием на вашем компьютере. Так что я думаю, что это не совместимо с Windows 8. - person Rob Mason; 17.09.2012

Это было связано с настройками безопасности в IE10. По какой-то причине мои настройки локальной интрасети были более строгими, чем общедоступные веб-сайты. Поэтому я не мог нажимать на гиперссылки, но мог нажимать на кнопки, которые отправляли формы.

person Rob Mason    schedule 17.09.2012

Вы должны установить .Net Framework 4.5, у меня это сработало.

person Serge    schedule 09.04.2013
comment
такая огромная ошибка в Dot Net/IE, что оба его продукта несовместимы друг с другом? что, если мой хост поддерживает только 4.0? - person Adeem; 09.04.2014

Для этого необходимо установить исправление. Скотт Хансельман объясняет это в своем блоге.

http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedScrollErrorOrMaintainFF5

person user1616625    schedule 13.05.2013