用于在新 window-tab 中打开视图的锚标记助手

Anchor tag helper to open view in new window-tab

使用 anchor tag helper, how can we open an ASP.NET Core MVC View in a new browser window-tab. I tried the following but first it complained that target attribute need to have href attribute as well. But, as we know, we can't use the href attribute with asp-action attribute in MVC Core; otherwise we get the error shown below. NOTE: I've seen some suggestions like this 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.

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

正如@Mohamed Rozza 在评论中提到的,如果您 忽视 关于 target 属性的 Visual Studio 警告仅在 href 存在,那么您很快就会意识到 hyperlink 确实有效并在新选项卡中打开。不管Visual Studio抱怨。

正如您还指出的那样,有一个 alternative/workaround,您可以在其中创建 link,如下所示:

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

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

我的问题是:

  • 成为 100% 标签助手对您和您的项目有多重要 相关?
  • 是必须的吗?
  • 如果你不经常使用标签助手,是不是show-stopper?
  • 你能接受变通办法吗?
  • 你能忍受 Visual Studio 向你显示警告吗?

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

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

None 这两种方法是 bad/wrong。如果出于某种原因你觉得有必要编写自己的自定义标签助手来克服这个问题......那么无论如何,继续吧!

如果您想向 Microsoft 报告有关标签助手不支持没有 href 的目标属性的错误,请务必继续!

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