gpt4 book ai didi

jQuery 阻止 RedirectToAction 工作?

转载 作者:行者123 更新时间:2023-12-01 06:25:31 26 4
gpt4 key购买 nike

如果用户登录成功,我会尝试重定向用户,但我页面上的代码似乎阻止重定向工作。如果我删除下面的 jQuery,重定向就会起作用。有人可以告诉我如果我做错了什么吗?谢谢

我有以下操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(User user)
{
var myErrors = new Dictionary<string, string>();
try
{
if (ModelState.IsValid)
{
if (userRepository.ValidUser(user))
{
return RedirectToAction("Index", "Group", new {page = (int?)null});

}
else
{
return Json("Username or password seems to be incorrect");
}
}
else
{
foreach (KeyValuePair<string, ModelState> keyValuePair in ViewData.ModelState)
{
if (keyValuePair.Value.Errors.Count > 0)
{
List<string> errors = new List<string>();

myErrors.Add(keyValuePair.Key, keyValuePair.Value.Errors[0].ErrorMessage);
}

}
return Json(myErrors);
}
}
catch (Exception)
{
return Json("Invalid");
}

}

以及我的页面上的以下代码:

<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#SaveSuccess").hide();
$("#btnLogin").click(function() {

$("form").submit(function(event) {
var formData = $(this).serialize();
$.post($(this).attr("action"), formData, function(res) {
ShowErrors(res);
if (res == true) {

$("#SaveSuccess").text("Saved");
}
else {
$("#divError").html(res);
}
$("#SaveSuccess").fadeIn(100);
}, "json");
return false;
});
});
});
</script>

最佳答案

您应该看看this question ,您的问题是它发送 302(IIRC,太早了)来响应 AJAX 请求,而不是整个页面请求,因此您需要查找该 header 并在找到时重定向整个页面。

顶部答案中的方法可能与跨浏览器一样简洁,只需返回带有重定向 URL 的 JSON 并重定向到该 URL,如下所示:

        $("form").submit(function(event) {
var formData = $(this).serialize();
$.post($(this).attr("action"), formData, function(res) {
if (res.redirect) {
window.location.href = res.redirect;
return;
}
ShowErrors(res);
if (res == true) {
$("#SaveSuccess").text("Saved");
}
else {
$("#divError").html(res);
}
$("#SaveSuccess").fadeIn(100);
}, "json");
return false;
});

在 C# 端,类似这样的内容而不是重定向:

return JSon({redirect = Url.Action("Index", "Group", new {page = (int?)null})});

关于jQuery 阻止 RedirectToAction 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903685/

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