【发布时间】:2014-04-02 21:35:38
【问题描述】:
我正在通过 ajax 调用调用名为 RedirectToHome 的控制器操作方法。在该操作方法中,我使用 RedirectToAction 来执行 Spa 控制器的 Index 方法。即使代码成功执行,此重定向也不起作用。我认为这是因为 RedirectToHome 是通过 ajax 调用调用的。这就是为什么当第一个请求的 ajax 调用成功时,我也尝试使用 ajax 调用来调用 Index 方法。但即使通过第二次 ajax 调用,我也看到 Index 方法确实被调用了,但视图从未呈现。控制台中没有错误。
$.ajax({
url: '@HttpContext.Current.Request.Url' + "Account/RedirectToHome",
data: { email: userEmail },
success: function (data) {
$.ajax({
url: '@HttpContext.Current.Request.Url' + "Spa/Index",
data: { isAuthenticated:true,email: userEmail },
success: function () {
}
});
}
});
public ActionResult RedirectToHome(string email)
{
if (ValidateDomain(email))
return RedirectToAction("Index", "Spa", new { isAuthenticated = true, email = email });
else
return RedirectToAction("ExternalLoginFailure");
}
【问题讨论】:
-
如果您的意图是重定向用户请求,您为什么要使用 ajax? Ajax 用于部分页面更新。
-
因为我想将 javascript 变量(上面代码中的 userEmail)传递给操作方法,所以我必须通过 ajax 调用它,否则我不会使用它。
-
一个带有查询字符串的简单
ActionLink就可以了。 -
同意,但是我现在拥有的那种 UI,我不能给用户一个操作链接
-
告诉我
userEmail的来源。
标签: jquery asp.net-mvc-4