定位标记辅助对象以在新窗口选项卡中打开视图



使用锚标记助手,我们如何打开ASP。NET核心MVCView。我尝试了以下操作,但首先它抱怨target属性也需要href属性。但是,正如我们所知,在MVC Core中,我们不能将href属性与asp-action属性一起使用;否则我们会得到如下所示的错误注意:我看到了一些类似这样的建议,但它们与标签助手无关:

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

错误:

InvalidOperationException:无法重写的"href"属性.具有指定"href"的不能以属性开头带有"asp路由-"或"asp操作"、"asp控制器"、"asp区域","asp路由"、"asp协议"、"asp主机"或"asp片段"属性。

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

正如@Mohamed Rozza在评论中提到的那样,如果您忽略Visual Studio关于target属性的警告,只有当href存在时才允许,那么您很快就会意识到超链接实际上是有效的,并在新的选项卡中打开。不管Visual Studio有什么抱怨。

正如你所指出的,有一种替代方法/变通方法,你可以创建这样的链接:

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

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

我的问题是:

  • 成为100%的标签助手对你和你的项目有多重要相关
  • 这是必须的吗
  • 如果你不总是使用标签助手,这会是一个阻碍吗
  • 你能忍受变通办法吗
  • 你能忍受Visual Studio向你显示警告吗

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

  1. 忽略VS警告
  2. 另一种是使用Url的变通方法。操作()

这两种方法都不是坏的/错误的。如果出于某种原因,你觉得必须编写自己的自定义标签帮助程序来克服这个问题。。。那么,无论如何,去吧!

如果您想向Microsoft报告一个关于标记助手不支持没有href的目标属性的错误,那么一定要继续!

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

最新更新