gpt4 book ai didi

c# - 为什么 ajax 在必要时返回值?

转载 作者:行者123 更新时间:2023-11-30 18:19:07 28 4
gpt4 key购买 nike

@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 事件,但没有返回值。请就这两个问题中的任何一个提供一些解决方案。

谢谢

最佳答案

如果您在同一个域上进行 ajax 调用,您可以指示 jQuery.ajax要同步。只需将“async: false”传递给 ajax 选项:

$.ajax({
cache: false,
async:false,
url: "/xyz/ChecLogin/",

success: function (UserLoggedOn) { ...

并且不需要从成功和错误回调中返回 tmp,只需对其进行初始化即可。

关于c# - 为什么 ajax 在必要时返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12506931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com