2011-06-18 15 views
3

私はRazor、HTML5、MVC3をアプリケーションで使用しています。ユーザーがリンクをクリックした後、新しいウィンドウを開き、何らかの処理を行い、次に302ステータスコードを持つウィンドウをリンクにリダイレクトする。MVC3とASP.Netを使用して302リダイレクトを実行しますか?

ありがとうございました。

答えて

9

ASP.NET MVCでこれを行う正しい方法は、リダイレクトActionResultを返すコントローラアクションを持たせることです。それが処理を行いますFooアクションが(おそらく新しいウィンドウ内で)呼び出され

public ActionResult Foo() 
{ 
    // ... some processing 
    return RedirectToAction("SomeAction", "SomeController"); 
} 

:コントローラのアクション内でこのウィンドウで起動すると、処理は、単に適切なのActionResultを返すことによってリダイレクトを実行行っているので、新たな場所が/SomeController/SomeActionの302 HTTPステータスコードをクライアントに返します。

public ActionResult Foo() 
{ 
    // ... some processing 
    return Redirect("http://someotherdomain.com/somescript"); 
} 

を限り付加できます懸念している新しいウィンドウ/タブで開きますリンクの作成など:あなたは次のことを行うことができ、アプリケーションのいくつかの外部のURLにリダイレクトしたい場合は

アンカーのtarget="_blank"属性:

@Html.ActionLink(
    "Some link",     // linkText 
    "Foo",      // action 
    "SomeController",   // controller 
    null,      // routeValues 
    new { target = "_blank" } // htmlAttributes 
) 
関連する問題