2012-04-12 3 views
0

В приложении ASP.NET MVC3 У меня есть базовый контроллер, где я переопределяю некоторые функции. И я получаю от него все контроллеры.MVC3 перенаправляет на новую страницу после вызова ajax

В базовом контроллере

Я перекрывая обработчик события OnAuthorization, чтобы проверить некоторые вещи, а затем возвращать истинным или ложным. Если результат верен, я хочу перенаправить на домашнюю страницу

protected override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    if(CheckValues()) 
    { 
     RedirectToHomePage(); 
    } 

} 

public ActionResult RedirectToHomePage() 
{ 
    return RedirectToAction("Index", "Home"); 
} 

Перенаправление работает для нормальных вызовов.

Но когда есть AJAX CALL, домашняя страница загружается внутри DIV страницы, а не как новая страница.

Есть ли способ заставить всю страницу перезагрузить и перенаправить на домашнюю страницу при наличии вызова AJAX?

Я попытался использовать Redirect("~/") для перенаправления на корневой URL-адрес, но с той же проблемой. страница загружается внутри DIV, а не на всю страницу.

Надеюсь, что я был чист. спасибо большое за любую помощь

ответ

1

Как вы делаете свой AJAX-вызов? Если вы используете jQuery AJAX, вы можете использовать успешный успех для перенаправления страницы.

$.ajax({ 
    url: 'ajax/test.html', 
    success: function() { 
     window.location = "/"; 
    } 
}); 
2

Вам нужно будет сделать это в методе обратного вызова AJAX (на стороне клиента javascript), а не на C# (на стороне сервера).

Смежные вопросы