使用锚标记助手,我们如何打开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向你显示警告吗
您有两个工作示例可以完成您的任务。
- 忽略VS警告
- 另一种是使用Url的变通方法。操作()
这两种方法都不是坏的/错误的。如果出于某种原因,你觉得必须编写自己的自定义标签帮助程序来克服这个问题。。。那么,无论如何,去吧!
如果您想向Microsoft报告一个关于标记助手不支持没有href的目标属性的错误,那么一定要继续!
最后,如果我不理解100%与标签助手相关的必要性(或者如果我过度简化了内容),那么无论如何,请随意分享,因为我们可能会提供更好的选择。