从控制器打开新窗口中的mvc视图

Joe*_*Joe 51 asp.net-mvc-4

有没有办法在新窗口中从控制器操作打开视图?

public ActionResult NewWindow()
{
    // some code
    return View();
}
Run Code Online (Sandbox Code Playgroud)

如何在新的浏览器选项卡中打开NewWindow.cshtml视图?

我知道如何从视图中的链接做到这一点 - 这不是问题.有没有人想出一种方法从控制器动作做到这一点?

Tom*_*mmy 73

这不能在控制器本身内完成,而是从您的视图中完成.在我看来,你有两个选择:

  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")


Jef*_*eck 38

您也可以在表单中使用Tommy的方法:

@using (Html.BeginForm("Action", "Controller", FormMethod.Get, new { target = "_blank" }))
{
//code
}
Run Code Online (Sandbox Code Playgroud)


Eli*_*ert 7

你问的是错误的问题.代码隐藏(控制器)与前端的作用无关.事实上,这是MVC的优势 - 您将代码/概念与视图分开.

如果您希望在新窗口中打开操作,则指向该操作的链接需要告知浏览器在单击时打开新窗口.

一个伪示例: <a href="NewWindow" target="_new">Click Me</a>

这就是它的全部内容.设置指向该操作的链接的目标.