ASP.NET Javascript '__doPostBack' не определен

function my_page_start_onload() {
    if (__doPostBack) { //  Error: '__doPostBack' is undefined
        ...
    }
}
window.onload = my_page_start_onload();

Я пробовал много способов, но безуспешно.

  1. Панель управления -> Центр обновления Windows -> обновлено -> все еще ошибка
  2. Обновлено определение браузера (aspnet_regiis.exe -i и iisreset) -> см. http://forum.jdp.tw/thread-1552-1-1.html -> Добавлено определение браузера в C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Browsers\ie.browsers -> RUN C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regbrowsers.exe -i -> RUN iisreset -> все еще ошибка

  3. Попробуйте установить исправление, но возникает ошибка The update is not applicable to your computer

  4. Попробуйте установить .NET Framework, но возникает ошибка The update is not applicable to your computer

  5. VS2012 с .NET 4.5 для запуска этой функции с пустой страницей, все еще ошибка

  6. Все версии IE5-11, все еще ошибка

Примечания:

  1. Request.Browser.Browser возвращает InternetExplorer
  2. Request.Browser.Version возвращает 11.0

Компьютерная среда

  1. виндовс 7 64-бит
  2. VS2008 с .NET 3.5
  3. Пул приложений IIS 7.5 использует версию .NET v2.0
  4. IE11.

Большое спасибо за помощь!


person Yves    schedule 11.03.2016    source источник
comment
Вы искали здесь __doPostBack undefined - и прочитали это stackoverflow.com /вопросы/15273618/   -  person Jaromanda X    schedule 15.03.2016
comment
Да, я пробовал, и я думаю, что проблема не связана с определением браузера. потому что Request.Browser.Browser и Request.Browser.Version возвращают IE11. А также использование VS2012 с .NET4.5 для запуска window.onload = my_page_start_onload(); с пустой страницей, но все равно ошибка.   -  person Yves    schedule 15.03.2016


Ответы (1)


Функция обратной передачи будет автоматически сгенерирована для вас .NET, если ваша страница содержит какой-либо элемент управления, который требует обратной передачи, но обычно не вызывает обратную передачу. Рассмотрим кнопку отправки — она вызывает постэк, но не требует дополнительного кода js, потому что она предназначена для постбэка. Однако элементы управления, такие как кнопка ссылки (отображаемая как привязка) или раскрывающийся список, обычно не вызывают обратную передачу, поэтому asp.net будет генерировать для них функцию __postback. Таким образом, чтобы заставить asp.net генерировать функцию _postback, вы можете добавить на страницу некоторый фиктивный элемент управления, или вы можете сделать тег ‹form› runat=server, или если вы хотите включить функцию __postback на каждой странице, независимо от того, какие элементы управления они ограничивают, вы можете выполните эту функцию в событии Page_Load главной страницы:

ClientScript.GetPostBackEventReference(this, "");
person Lesmian    schedule 15.03.2016