基本的に何が起こっているかというと、2 つの html 隠し要素「eventtarget」と「eventargument」が欠落しており、関数「__doPostBack」が欠落しています。
これらは DOM にありません。
これについてリストされているすべての修正を試しましたが、どれも機能しませんでした。ただし、jquery と javascript の組み合わせを使用すると、目立たない解決策があります。これをドキュメントの準備ができたときに JavaScript に追加すると、レースに参加できます (これは、サーバーに .net Framework 4.5 をインストールするよりもはるかに迅速な代替手段ですが、4.5 をインストールできる場合はそれを実行する必要があります):
if ($('#__EVENTTARGET').length <= 0 && $('#__EVENTARGUMENT').length <= 0) {
$('#YOUR_ASPNET_FORMID').prepend('<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />');
}
if (typeof __doPostBack == 'undefined') {
__doPostBack = function (eventTarget, eventArgument) {
var theForm = document.forms['YOUR_ASPNET_FORMID'];
if (!theForm) {
theForm = document.YOUR_ASPNET_FORMID;
}
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
};
}
4.5をインストールすると、これが修正されると言われていることを理解しています。私は間違いなくそれをお勧めします。ただし、私のように、.net 4 で作成された cms システムを使用して企業の公開サイトで作業している場合、プラットフォームの更新によって作成された新しいバグが発生する可能性があるのとは対照的に、これはより簡単な解決策になる可能性があります。