2017-01-23 46 views
4

使用anchor tag helper,我们如何在新的浏览器窗口选项卡中打开ASP.NET Core MVC View。我尝试了以下,但首先它抱怨target属性也需要具有href属性。但是,正如我们所知,我们不能将asp-action属性中的href属性用于MVC Core;否则我们会得到如下所示的错误。 注意:我已经看到了诸如t his one一些建议,但他们没有标签相关帮手:锚标签助手打开视图在新窗口中 - 选项卡

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

错误:

InvalidOperationException: Cannot override the 'href' attribute for . An with a specified 'href' must not have attributes starting with 'asp-route-' or an 'asp-action', 'asp-controller', 'asp-area', 'asp-route', 'asp-protocol', 'asp-host', or 'asp-fragment' attribute.

+2

如果忽略关于目标属性的visual studio警告,它仍然有效。 您可以删除href并保持目标。还关闭锚定标记。 否则您可以使用Click Here 另一个有趣的解决方案是添加您的自定义标签助手。有关更多信息,请参阅此答案https://forums.asp.net/t/2083444.aspx。 –

+1

请注意,没有MVC6了,因为它被重新命名以避免混淆。如果你**保留使用它,你只会增加其他人的困惑。 – Tseng

+0

@MohamedRozza你在这个特殊情况下忽略VS警告的建议奏效。谢谢。 – nam

回答

2

我不知道,如果你问一个问题或者如果你分享你的发现?

由于@Mohamed Rozza在评论中提到的,如果你无视 Visual Studio的警告有关target属性只允许在href存在,那么你很快就会意识到,超链接实际工作,并会在新的标签。无论Visual Studio抱怨如何。

正如你还指出,有一种替代/替代方案,你可以创建你的链接是这样的:

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

但是,正如你所说的,这种做法是不相关的标签帮手。但那又如何?

我的问题是:

  • 如何重要的是它为你和你的项目是100%的标签帮手 有关?
  • 这是必须的吗?
  • 如果你不总是使用标签助手,那么它是一个展示瓶塞吗?
  • 你能和解决方法一起生活吗?
  • 你可以和Visual Studio一起给你看警告吗?

你有两个实现你的任务的工作示例。

  1. 一个接不顾VS通过使用Url.Action()解决方法这两种方法的

无警告

  • 其他的都是坏/错误的。如果由于某种原因,你觉得不得不编写你自己的定制标签帮手来克服这个......那么千万要继续!

    如果您希望向微软报告有关不支持href的目标属性的标记帮助程序的错误,请务必继续!

    最后,如果我不明白需要100%标签助手相关(或者如果我过于简化的东西),那么通过一切手段,随时分享,因为我们可能提供更好的选择。

  • -1

    为了让知道标签助手剃刀,我们需要添加下面一行

    @addTagHelper“*,Microsoft.AspNet.Mvc.TagHelpers”

    到文件名为_ViewImports.cshtml,你可以在Views文件夹中找到这个文件。如果它不存在,那么创建这个文件.Razor会自动感知该文件。 希望这样可以解决你的问题。

    相关问题