@using (Ajax.BeginForm("Edit", "xyz", new AjaxOptions {
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
UpdateTargetId = "divDisplay",
}))
{
<input type="submit" value="Edit" id="Edit" class="formBtn" onclick='return OpenErrorPopup()'/>
}
<script type="text/javascript" language="javascript">
function OpenErrorPopup() {
debugger;
var temp = false;
$.ajax({
cache: false,
url: "/xyz/ChecLogin/",
success: function (UserLoggedOn) {
debugger;
if (UserLoggedOn == "True") {
if (condition) {
temp = false;
return temp;
}
else {
temp = true;
return temp;
}
}
else {
temp = false;
return temp;
}
},
error: function (err) {
temp = false;
return temp;
}
});
debugger;
return temp;
}
</script>
予想:最初にopenErrorPopupを呼び出し、ajaxを実行してから、値を動的に返します。
実際:openErrorPopupが呼び出されますが、最初に一時値をに直接返し、<input .... onclick=...>
次にajaxを実行します。
ajaxの実行は非同期になることがわかりました。そこで、ajaxのOnBeginイベントを試しましたが、値が返されません。これら2つの問題のいずれかについて解決策を提供してください。
ありがとう