在ASP.NET MVC3应用程序中 我有一个基本控制器,我覆盖了一些功能。 我从中获取了所有控制器。
在基本控制器中
我重写OnAuthorization
事件处理程序以检查某些内容然后返回true或false。如果结果为true,我想重定向到主页
protected override void OnAuthorization(AuthorizationContext filterContext)
{
if(CheckValues())
{
RedirectToHomePage();
}
}
public ActionResult RedirectToHomePage()
{
return RedirectToAction("Index", "Home");
}
重定向适用于正常的动作调用。
但是当有一个AJAX CALL时,主页加载到页面的DIV内而不是新页面。
当有AJAX通话时,有没有办法可以强制整个页面重新加载并重定向到主页?
我尝试使用Redirect("~/")
重定向到根URL但问题相同。页面正在DIV中加载,而不是整个页面。
希望我很清楚。非常感谢任何帮助
答案 0 :(得分:2)
您需要在AJAX回调方法(javascript客户端)而不是C#(服务器端)中执行此操作。
答案 1 :(得分:1)
你是如何进行AJAX通话的?如果您正在使用jQuery AJAX,那么您可以使用on success成功重定向页面。
$.ajax({
url: 'ajax/test.html',
success: function() {
window.location = "/";
}
});
答案 2 :(得分:0)
var redirectSucURL = '@Url.Action("MethodName","ControllerName")';
成功消息后的成功:功能(结果){
if (true) {
window.location.href = redirectSucURL;
}