锚标记帮助程序在新窗口选项卡中打开视图

时间:2017-01-23 04:40:51

标签: c# asp.net-core asp.net-core-tag-helpers

使用anchor tag helper,我们如何在新的浏览器窗口选项卡中打开ASP.NET Core MVC View。我尝试了以下操作,但首先它抱怨target属性也需要href属性。但是,正如我们所知,我们无法在asp-action中使用带有MVC Core属性的href属性;否则我们会得到如下所示的错误。 注意:我已经看到了一些像t his one这样的建议,但它们与标签助手无关:

<a asp-action="testAction" href="#" target="_blank">Click Here</a>

错误:

  

InvalidOperationException:无法覆盖&#39; href&#39;属性   。带有指定&#39; href&#39;必须没有属性开始   使用&#39; asp-route - &#39;或者是'asp-action&#39;,&#39; asp-controller&#39;,&#39; asp-area&#39;,   &#39; asp-route&#39;,#asp; protocol&#39;,&#39; asp-host&#39;或&#39; asp-fragment&#39;属性。

1 个答案:

答案 0 :(得分:6)

我不确定你是在问一个问题,还是在分享你的发现?

正如@Mohamed Rozza在评论中提到的那样,如果您忽视,只有在target出现时才允许有关href属性的Visual Studio警告,那么您将会快速意识到超链接实际工作并在新选项卡中打开。无论Visual Studio抱怨如何。

正如您所指出的,还有一种替代/解决方法,您可以像这样创建链接:

<a href="@Url.Action("testAction","Home")" target="_blank">Click Here</a>

但是,正如您所说,这种方法与标签助手无关。那么呢?

我的问题是这些:

  • 您和您的项目成为100%标签助手的重要性 相关?
  • 是必须的吗?
  • 如果你不总是使用标签助手,它是一个表演者吗?
  • 你能和变通办法一起生活吗?
  • 您可以使用Visual Studio向您显示警告吗?

你有两个可以完成任务的工作示例。

  1. 一个忽视VS警告
  2. 另一个使用Url.Action()
  3. 的变通方法

    这两种方法都不是坏/坏。如果由于某种原因你不得不编写自己的自定义标签助手来克服这个问题......那么请务必继续!

    如果您希望向Microsoft报告一个错误,指出没有href的标记助手不支持目标属性,那么请务必继续!

    最后,如果我不理解需要100%标签助手相关(或者如果我过度简化那些东西)那么无论如何,请随意分享,因为我们可能提供更好的选择。