0

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内に読み込まれます。

私がはっきりしていたことを願っています。助けてくれてありがとう

4

3 に答える 3

2

これは、C#(サーバー側)ではなく、AJAXコールバックメソッド(javascriptクライアント側)で行う必要があります。

于 2012-04-12T13:21:54.293 に答える
1

AJAX呼び出しはどのように行っていますか?jQuery AJAXを使用している場合は、onsuccessを使用してページをリダイレクトできます。

$.ajax({
    url: 'ajax/test.html',
    success: function() {
      window.location = "/";
   }
});
于 2012-04-12T13:22:58.267 に答える
0
var redirectSucURL = '@Url.Action("MethodName","ControllerName")';

成功メッセージ成功後:関数(結果){

if (true) {
    window.location.href = redirectSucURL;
}
于 2018-12-06T09:57:07.793 に答える