【问题标题】:Asp.net Core disable a tag in liAsp.net Core 禁用 li 中的标签
【发布时间】:2017-08-08 18:57:45
【问题描述】:

在 Asp.net Core 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="disabled"

<li class="disabled"><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>  

但是,关于仍然可以点击。
在一些类似的线程中,建议使用自定义 Authoring Tag Helpers,但它无法通过禁用属性设置属性。它是只读的。
任何帮助将不胜感激。

【问题讨论】:

  • 在 HTML 中,disabled 属性对 li 无效。

标签: angularjs asp.net-core tag-helpers


【解决方案1】:

您可以禁用使用 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>

【讨论】:

  • 解释得很好。
猜你喜欢
  • 1970-01-01
  • 2021-06-29
  • 2022-10-05
  • 1970-01-01
  • 2019-03-09
  • 2023-04-03
  • 2012-03-13
  • 1970-01-01
  • 2014-11-09
相关资源
最近更新 更多