61

新しいウィンドウでコントローラー アクションからビューを開く方法はありますか?

public ActionResult NewWindow()
{
    // some code
    return View();
}

NewWindow.cshtml ビューを新しいブラウザー タブで開くにはどうすればよいですか?

ビュー内のリンクからそれを行う方法を知っています-それは問題ではありません。コントローラーのアクションからそれを行う方法を見つけた人はいますか?

4

8 に答える 8

82

これは、コントローラー自体からではなく、ビューから実行できます。私が見ているように、2つのオプションがあります。

  1. 「_blank」属性でリンクを装飾します(HTMLヘルパーとストレートHMTL構文を使用した例)

    • @Html.ActionLink("linkText", "Action", new {controller="Controller"}, new {target="_blank"})
    • <a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>
  2. Javascriptを使用して新しいウィンドウを開く

    window.open("Link URL")

于 2013-01-24T19:59:58.600 に答える
43

トミーの方法はフォームでも使用できます。

@using (Html.BeginForm("Action", "Controller", FormMethod.Get, new { target = "_blank" }))
{
//code
}
于 2013-06-26T18:09:48.340 に答える
7

あなたは間違った質問をしています。分離コード (コントローラー) は、フロントエンドの機能とは何の関係もありません。実際、それが MVC の強みです。コード/概念をビューから分離します。

アクションを新しいウィンドウで開く場合、そのアクションへのリンクは、クリックしたときに新しいウィンドウを開くようにブラウザに指示する必要があります。

擬似例:<a href="NewWindow" target="_new">Click Me</a>

それだけです。そのアクションへのリンクのターゲットを設定します。

于 2013-01-24T19:58:23.113 に答える
0
@Html.ActionLink("linkText", "Action", new {controller="Controller"}, new {target="_blank",@class="edit"})

   script below will open the action view url in a new window

<script type="text/javascript">
    $(function (){
        $('a.edit').click(function () {
            var url = $(this).attr('href');
            window.open(url, "popupWindow", "width=600,height=800,scrollbars=yes");
            });
            return false;
        });   
</script>
于 2014-12-11T07:22:47.447 に答える