Пользовательский помощник по тегам не работает в ASP.Net Core MVC - PullRequest
0 голосов
/ 03 марта 2019

Я использую Asp.Net Core MVC, и я пытаюсь создать новый атрибут помощника по тегам, но атрибут помощника по тегам не работает, и intelliSense не отображается в моем представлении бритвы.Я не знаю, что я делаю не так.

Tag Helper code

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>

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Мне удалось решить эту проблему, сопоставив имя HtmlTargetElement и имя класса TagHelper.Мне просто нужно было заменить CustomTageHelper на inputTagHelper, что на самом деле было именем HtmlTargetElement.

0 голосов
/ 07 марта 2019

Между атрибутом и знаком равенства есть пробел.

Этот

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

должен выглядеть следующим образом

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