アプリケーションでRazor、HTML5、MVC3とC#を使用しています。ユーザーがリンクをクリックした後、新しいウィンドウを開き、処理を行ってから、302ステータスコードを含むそのウィンドウをリンクにリダイレクトします。
ありがとう。
アプリケーションでRazor、HTML5、MVC3とC#を使用しています。ユーザーがリンクをクリックした後、新しいウィンドウを開き、処理を行ってから、302ステータスコードを含むそのウィンドウをリンクにリダイレクトします。
ありがとう。
ASP.NET MVCでこれを行う正しい方法は、リダイレクトを返すコントローラーアクションを使用することActionResult
です。したがって、このウィンドウで呼び出しているコントローラーアクション内で処理を実行するには、適切なActionResultを返すことでリダイレクトを実行するだけです。
public ActionResult Foo()
{
// ... some processing
return RedirectToAction("SomeAction", "SomeController");
}
アクションが呼び出されると(おそらく新しいウィンドウ内で) 、Foo
アクションが処理を実行し、302HTTPステータスコードを新しい場所であるクライアントに返します/SomeController/SomeAction
。
アプリケーションの外部URLにリダイレクトしたい場合は、次のようにすることができます。
public ActionResult Foo()
{
// ... some processing
return Redirect("http://someotherdomain.com/somescript");
}
新しいウィンドウ/タブで開くリンクの作成に関する限りtarget="_blank"
、アンカーに属性を追加できます。
@Html.ActionLink(
"Some link", // linkText
"Foo", // action
"SomeController", // controller
null, // routeValues
new { target = "_blank" } // htmlAttributes
)