WebForm_DoPostBackWithOptions не определяется с помощью хрома
На одной из моих страниц мои динамические ссылки работают нормально в IE10, но не работают ни в Chrome, ни через Проводник на моем телефоне с Windows. В Chrome я получаю "WebForm_DoPostBackWithOptions не определен", когда я пытаюсь нажать на любую из динамических ссылок. Я провел много исследований и пытался изменить настройки фильтров ISAPI в сопоставлениях обработчиков в IIS 8, но это не сработало. Пожалуйста помоги. Я в тупике.
Обновление: это также не работает в Firefox. Кажется, что динамические ссылки на этой странице работают только в IE10. Ссылки генерируются из моего кода. Странно то, что на других страницах ссылки генерируются по-разному, а javascript на href отличается, но я создаю привязки в коде точно так же.
Вот код для "плохого" якоря:
Dim anchName As New HtmlAnchor
anchName.ID = "bcrasodiuhf" & foo
AddHandler anchName.ServerClick, AddressOf HandleNameClick
anchName.Attributes.Add("style", "font-weight: bold; font-size: 14px;")
anchName.Attributes.Add("for", foo)
anchName.InnerText = foo
И "плохой" результат:
<a id="MainContent_bcrasodiuhf1" **href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBac…0$MainContent$bcrasodiuhf1", "", true, "", "", false, true))**" for="1" style="font-weight: bold; font-size: 14px;"></a>
Вот "рабочий" якорь:
Dim ancJoe As New HtmlAnchor
ancJoe.ID = "pjancJoe" & foo
AddHandler ancJoe.ServerClick, AddressOf HandleJoeClick
ancJoe.InnerText = joe.Title
ancJoe.Attributes.Add("style", "font-size: 150%;")
ancJoe.Attributes.Add("jn", foo)
ancJoe.Attributes.Add("for", foo)
ancJoe.Attributes.Add("action", "actionA")
И "рабочий" результат:
<a id="MainContent_pcancJoe19416" **href="javascript:__doPostBack('ctl00$MainContent$pcancJoe19416','')"** action="actionA" for="194" jn="foo foo" forc="16" style="font-size: 150%;"></a>
Ответы
Ответ 1
Соответствующий JS-код (т.е. WebForm_DoPostBackWithOptions (параметры)) является встроенной частью и динамически связан. Правильный URL-адрес создается ScriptManager страницы.
Учитывая, что вы упоминали, что используете URL Rewrite, попробуйте проверить, не игнорируются или перезаписаны URL-адреса, такие как WebResource.axd? d = XXX.
Кроме того, возможно, стоит посмотреть конфигурацию сопоставления обработчиков IIS, чтобы обеспечить, чтобы ресурсы .axd сопоставлялись с стандартным обработчиком модуля ISAPI.
Ответ 2
В файлах определения браузера, которые поставляются с .NET 2.0 и .NET 4, есть ошибка, а именно, что они содержат определения для определенного диапазона версий браузера. Но версии для некоторых браузеров (например, IE 10) уже не входят в эти диапазоны. Поэтому ASP.NET рассматривает их как неизвестные браузеры и по умолчанию использует определение нижестоящего уровня, которое имеет определенные неудобства, например, что оно не поддерживает такие функции, как JavaScript.
К счастью, для .NET Framework 4.0 доступно исправление
https://support.microsoft.com/en-gb/kb/2600088
Вы можете узнать больше об этой проблеме в блоге Скотта Ханселмана
http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx
Ответ 3
У меня была (почти) та же проблема, и она была исправлена путем переустановки .NET Framework на IIS
Ответ 4
Попробуйте установить причиныValidation = false для кнопки