自定义标记助手在ASP.Net Core MVC中不起作用

时间:2019-03-03 17:11:53

标签: c# razor asp.net-core-mvc asp.net-core-2.0 asp.net-core-tag-helpers

我正在使用Asp.Net Core MVC,并且尝试创建新的Tag Helper属性,但是Tag helper属性不起作用,并且在剃刀视图上没有显示intelliSense。我不知道我在做什么错。

标记帮助程序代码

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>

1 个答案:

答案 0 :(得分:0)

属性和等号之间有一个空格。

<input type="hidden" asp-for="DetailId" asp-line ="DetailId"/>

应该看起来像这样

<input type="hidden" asp-for="DetailId" asp-line="DetailId"/>