gpt4 book ai didi

asp.net-mvc - ASP.Net Core MVC 中的 data-ajax-begin 脚本阻止重定向

转载 作者:行者123 更新时间:2023-12-05 04:11:58 25 4
gpt4 key购买 nike

我正在尝试在 ASP.NET Core 中创建简单的微调器,它将在持久 Controller 的 Action 时显示。

该代码按预期工作,但它似乎阻止了 Controller 操作中的重定向。有什么方法可以使重定向在这种情况下起作用吗?

我的索引.cshtml

<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/jquery-ajax-unobtrusive/src/jquery.unobtrusive-ajax.js"></script>

<script type="text/javascript">
function onBegin() {
$("#divLoading").html('<image src="~/images/ajax-loader.gif" alt="Loading, please wait" />');
}
function onComplete() {
$("#divLoading").html("");
}
</script>

<form data-ajax="true" data-ajax-begin="onBegin" data-ajax-complete="onComplete" asp-action="LoadLongLasting" asp-controller="Home">
<input type="submit" value="Load Long lasting"/>
</form>
<div id="divLoading"></div>

Controller 的操作示例:

    public ActionResult LoadLongLasting()
{
bool result = GetLongLastingResult();

if(result)
{
return View();
}

return RedirectToAction("Error");
}

最佳答案

你需要像这样返回json并在onSuccess函数中写redirect。

查看:

<script type="text/javascript">
function onBegin() {
$("#divLoading").html('<image src="~/images/ajax-loader.gif"
alt="Loading, please wait" />');
}
function onSuccess() {
if(data.status === 1) {
window.location.href = "/yourpage";
}
}
function onComplete() {
$("#divLoading").html("");
}
</script>

<form data-ajax="true" data-ajax-begin="onBegin" data-ajax-complete="onComplete" data-ajax-success="onSuccess" asp-action="LoadLongLasting" asp-controller="Home">
<input type="submit" value="Load Long lasting"/>
</form>

Controller :

public ActionResult LoadLongLasting()
{
bool result = GetLongLastingResult();

if(result)
{
return View();
}
return Json(new { status = 1 });
//return RedirectToAction("Error");
}

关于asp.net-mvc - ASP.Net Core MVC 中的 data-ajax-begin 脚本阻止重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538387/

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