如何在新选项卡中打开razor动作链接?

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

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

这不是工作。 有人知道怎么做吗?

看起来像是混淆了Html.ActionLink() Url.Action() 。 Url.Action没有参数来设置目标,因为它只返回一个URL。

根据你当前的代码,锚点可能应该是这样的:

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

只需使用HtmlHelper ActionLink并相应地设置RouteValuesHtmlAttributes

 @Html.ActionLink(Reports.RunReport, "RunReport", new { controller = "Performance", reportView = Model.ReportView.ToString() }, new { target = "_blank" }) 

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

UrlHelper.Action将只根据您提供的操作生成Url,而不是<a>标记。 如果你想添加一个HtmlAttribute(比如target="_blank" ,打开新标签中的链接),你可以:

  • 将target属性自己添加到<a>元素中:

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

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

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

带有命名参数:

 @Html.ActionLink(linkText: "TestTab", actionName: "TestAction", controllerName: "TestController", routeValues: null, htmlAttributes: new { target = "_blank"}) 

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

 <a target="_blank" class="btn" data-ng-href="@Url.Action("RunReport", "Performance")?hotelCode={{hotel.code}}">Select Room</a> 

您正在设置为不submit 。 这意味着浏览器应该将<form>数据发布到服务器上。

实际上,一个标签根据w3schools没有types属性。

所以远程type属性,它应该为你工作。

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