【问题标题】:Custom Tag Helper not working in ASP.Net Core MVC自定义标记帮助程序在 ASP.Net Core MVC 中不起作用
【发布时间】:2019-03-03 17:11:52
【问题描述】:

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

标签助手代码

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>

【问题讨论】:

  • 为什么Vue 是您的根命名空间?你在用 Vue 吗?
  • 一个可能的原因:您的AssemblyName 不是Vue.js_Hello_World
  • 我只是在用 VueJS 测试一些东西。这只是一个涉及自定义标签助手和 VueJS 的 helloWorld 项目。我想在标签助手的情况下,命名空间中的 Vue 应该无关紧要。我也尝试过使用“SampleNamespace”。
  • @SaudNasir 你的程序集叫什么名字?
  • @itminus 是 Vue.js_Hello_World

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


【解决方案1】:

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

这个

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

应该是这样的

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2014-02-02
      • 1970-01-01
      • 2020-09-01
      相关资源
      最近更新 更多