首页 > 解决方案 > 自定义标记助手在 ASP.Net Core MVC 中不起作用

问题描述

我正在使用 Asp.Net Core MVC,我正在尝试创建一个新的标签助手属性,但标签助手属性不起作用,并且我的剃刀视图上没有显示智能感知。我不知道我做错了什么。

标签助手代码

namespace Vue.js_Hello_World.Helpers
{
    [HtmlTargetElement("input", Attributes = "asp-line")]
    public class CustomTagHelper: TagHelper
    {
        [HtmlAttributeName("asp-line")]
        public string ID { get; set; }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!string.IsNullOrEmpty(ID))
            {
                output.Attributes.SetAttribute("id", ID + new Guid());
            }
            base.Process(context, output);
        }
    }
}

_ViewImports.cshtml

@using Vue.js_Hello_World
@using Vue.js_Hello_World.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Vue.js_Hello_World

VueDetail.cshtml(这是部分视图)

@model Vue.js_Hello_World.Models.VueJsTestModelDetail

<td style="width:200px;">@Model.DetailId</td>
<td style="width:200px;">@Model.Id</td>
<td >
    <input type="hidden" asp-for="DetailId" asp-line ="DetailId"/>
    <input type="hidden" asp-for="Id" />
    <input type="text" asp-for="Email" class="form-control-sm" style="width:250px;"/>
</td>

标签: c#razorasp.net-core-mvcasp.net-core-2.0asp.net-core-tag-helpers

解决方案


我能够通过匹配 HtmlTargetElement 的名称和 TagHelper 类的名称来解决这个问题。我只需要替换CustomTageHelperinputTagHelper实际上是 HtmlTargetElement 的名称。


推荐阅读