76

我试图让我的链接在新标签页中打开(它必须是剃刀格式):

    <a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() }, new { target = "_blank" })" type="submit" id="runReport" class="button Secondary">@Reports.RunReport</a>

这虽然行不​​通。有人知道怎么做吗?

4

10 回答 10

133

只需使用HtmlHelper ActionLinkand 相应地设置RouteValuesand HtmlAttributes

@Html.ActionLink(Reports.RunReport, "RunReport", new { controller = "Performance", reportView = Model.ReportView.ToString() }, new { target = "_blank" })
于 2012-06-01T14:21:17.197 回答
47

看起来您将Html.ActionLink()Url.Action()混淆了。Url.Action 没有设置 Target 的参数,因为它只返回一个 URL。

根据您当前的代码,锚点应该如下所示:

<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })" 
   type="submit" 
   id="runReport" 
   target="_blank"
   class="button Secondary">
     @Reports.RunReport
</a>
于 2012-06-01T14:21:44.910 回答
22

那不会编译,因为UrlHelper.Action(string,string,object,object)不存在。

UrlHelper.Action只会根据您提供的操作生成 URL,而不是<a>标记。如果您想添加 HtmlAttribute(例如target="_blank",在新选项卡中打开链接),您可以:

  • <a>自己给元素添加target属性:

    <a href="@Url.Action("RunReport", "Performance",
        new { reportView = Model.ReportView.ToString() })",
        target = "_blank" type="submit" id="runReport" class="button Secondary">
        @Reports.RunReport
    </a>
    
  • 使用 Html.ActionLink 生成<a>标记元素:

    @Html.ActionLink("Report View", "RunReport", null, new { target = "_blank" })
    
于 2012-06-01T14:25:59.920 回答
18

如果您的目标是使用 ActionLink 帮助程序并打开一个新选项卡:

@Html.ActionLink("New tab please", "Home", null , new { target = "_blank" })

@Html.ActionLink("New tab please", "Home", Nothing, New With {Key .target = "_blank"})
于 2015-10-27T14:56:28.957 回答
9
@Html.ActionLink(
"Pay Now",
"Add",
"Payment",
new { @id = 1 },htmlAttributes:new { @class="btn btn-success",@target= "_blank" } )
于 2018-08-18T06:11:52.540 回答
6

使用命名参数:

@Html.ActionLink(linkText: "TestTab", actionName: "TestAction", controllerName: "TestController", routeValues: null, htmlAttributes: new { target = "_blank"})
于 2016-12-15T22:09:10.873 回答
5

为了

@Url.Action

<a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>
于 2018-05-03T07:37:30.470 回答
1

带有角度参数的 asp.net mvc ActionLink 新选项卡

<a  target="_blank" class="btn" data-ng-href="@Url.Action("RunReport", "Performance")?hotelCode={{hotel.code}}">Select Room</a>
于 2016-12-20T18:22:30.910 回答
0

您将其设置typesubmit. 这意味着浏览器应该将您的<form>数据发布到服务器。

事实上,根据w3schools ,标签没有类型属性。

所以远程type属性,它应该适合你。

于 2012-06-01T14:21:05.013 回答
0

<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })" type="submit" id="runReport" target="_blank" class="button Secondary"> @Reports.RunReport </a>

于 2014-06-18T06:44:35.747 回答