在Asp.net核心Web应用程序中,我在View中有一个html部分,我想禁用其中一个标记,但我没有标记它的工作。
<ul class="nav navbar-nav">
<li ><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
<li ><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>
<li ><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>
</ul>
我发现最接近的方式是 class =&#34;禁用&#34; 。
<li class="disabled"><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>
但是,关于仍然可以点击
在一些建议使用自定义Authoring Tag Helpers的类似线程中,但它无法通过disable属性设置属性。它是只读的。
任何帮助将不胜感激。
答案 0 :(得分:3)
您可以使用JavaScript <event.preventDefault()
)禁用链接。您可以创建TagHelper,而不是在任何地方添加它:
[HtmlTargetElement(Attributes = "disabled-link")]
public class DisabledLinkTagHelper : TagHelper
{
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.SetAttribute("onclick", "event.preventDefault()");
return base.ProcessAsync(context, output);
}
}
然后,不要忘记在视图中声明标记助手:
@addTagHelper *, WebApplication1
并使用它:
<a href="test" disabled-link>Disabled</a>
此生成
<a onclick="event.preventDefault()" href="test">Disabled</a>