2012-09-10 12 views
10

以下の構文を実行して、アカウントコントローラ(アカウント/ログイン)からユーザー/インデックスにリダイレクトしようとしていました。RedirectToActionはブラウザのURLを変更しません

return RedirectToAction("Index", "User"); 

正しいビューが表示されますが、URLは引き続きアカウント/ログインとして保持されます。誰も私はどのように同じを達成することができます示唆できますか?私はGoogleからの検索のいくつかを試みたが、それらのどれも私のために働く。

+0

あなたは、AJAXを使用してこのコントローラのアクションを呼び出していますか?これが当てはまる場合、ブラウザのアドレスバーが変更されないことは驚くことではない - それがAJAXの全ポイントである。 –

+0

@using(Html.BeginForm( "Index"、 "User"、FormMethod.Post))を使用していますが、入力タイプsubmitがあります。 – Pradeep

+0

イベントを処理してwindow.location.href( 'url')を追加するのはあなたの仕事ですか? –

答えて

30

これはjQuery-mobileによって発生する問題です。デフォルトでは、jQMはフォームがajax呼び出しを使用するようにします。これはページナビゲーションがフレームワーク内でどのように実行されるかを示します。 AJAX navigation is explained in more detail here.

解決策は、最初のサーバーコールに使用されたフォームタグにdata-ajax="false"を追加することです。

だからあなたの形式は次のようになります。

@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_ajax = "false" })) 
+0

それでも私にとってはうまくいかない。 – Pradeep

+0

私は答えを更新しましたが、これはうまくいくはずです。 – Alejo

+0

私はそれを私のコントローラーの中ではなく、そのビューでやりたいと思っています。 – Pradeep

関連する問題