web-dev-qa-db-ja.com

URLにリダイレクトするにはどうすればよいですか?

ビューアをURLにリダイレクトするにはどうすればよいですか?

私は誰かが JavaScript/jQueryで別のWebページにリダイレクトする方法 を尋ねたのに気付きましたが、これがどこに行くべきか正確にはわかりません。

私はコントローラーで試しました:
window.location.replace("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
およびビュー内:

<% if (BreakCount >= 8) {  
    var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;  
    window.location.replace(url);  
} %>  

これらのどちらも動作しません。両方の場所で、windowの下に赤い波線があり、その上にマウスを移動すると、「現在のコンテキストに「ウィンドウ」という名前は存在しません」というメッセージが表示されます。

どんな助けでも大いにいただければ幸いです!

= D

29
Dracco1993

あなたの質問にはMVC 3というタグが付けられているので、リストしたJavaScriptの例にもかかわらず、その答えを示します。コントローラークラスで次のコードを使用します。

public ActionResult MyAction()
{
    // Use this for an action
    return RedirectToAction("ActionName");
    // Use this for a URL
    return Redirect("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
}

これはサーバー上で発生します。つまり、クライアントブラウザーはリダイレクトレスポンスを受信します。リダイレクトレスポンスに対してブラウザーは追加リクエストを送信する可能性があります。 JavaScriptを使用してページを返す場合、ページをロードし、JavaScriptを実行して(クライアントのブラウザーで有効になっていると仮定)、次のページをロードする必要があります。他の問題の中でも、JavaScriptを使用すると、ユーザーが[戻る]ボタンを押すと、現在のページに繰り返しリダイレクトされます。

71
Paul

コントローラー内でreturn RedirectToAction()を呼び出します。

public ActionResult MyAction() {

    return RedirectToAction("Index", "Home");
}

または、 T4MVC を使用します(そして;-))

public ActionResult MyAction() {

    return RedirectToAction(MVC.Home.Index());
}

ビューにifステートメントを入れないでください-これはMVCの方法ではありません。別のビューにリダイレクトするかどうかを決定するのは、コントローラーの責任です。

6
Jakub Konecki

このようにしてみてください:

<script type="text/javascript">
    // Make sure the LastId variable is defined
    var LastId = '123';
    <% if (BreakCount >= 8) { %>
        var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;
        window.location.replace(url);
    <% } %>
</script>
4
Darin Dimitrov

これを試して:

 <script type="text/javascript">
   var id = '123';
   location.href = "http://192.168.1.109/MWT/Taglist/ShowMap/" + id;
 </script>
1
Shrikant D