3

アプリケーションでRazor、HTML5、MVC3とC#を使用しています。ユーザーがリンクをクリックした後、新しいウィンドウを開き、処理を行ってから、302ステータスコードを含むそのウィンドウをリンクにリダイレクトします。

ありがとう。

4

1 に答える 1

11

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
)
于 2011-06-18T22:26:59.133 に答える