【发布时间】:2017-06-04 06:24:48
【问题描述】:
我正在运行 AspNetCore 应用程序并尝试创建自定义 TagHelper,但它只是不呈现。我已经阅读了很多文章,我认为我拥有我需要的一切。
project.json
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.3",
_ViewImport.cshtml
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
ReverseTextDivTagHelper.cs
下面的代码来自我正在尝试的示例
[HtmlTargetElement("tag-name")]
public class ReverseTextDivTagHelper : TagHelper
{
private string _divData = string.Empty;
public string DivData
{
get
{
char[] reversedData = _divData.ToCharArray();
Array.Reverse(reversedData);
String sDataReversed = new String(reversedData);
return AllCaps ? sDataReversed.ToUpper() : sDataReversed;
}
set { _divData = value; }
}
public bool AllCaps { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "div";
output.Content.SetContent(DivData);
}
}
然后在局部视图中我这样称呼它
<reverse-text-div all-caps="true" div-data="Jacques"></reverse-text-div>
【问题讨论】:
-
可以分享
_ViewImports.cshtml的全部内容吗?是否添加了 ASP.NET Core Web 应用命名空间@addTagHelper "*, AspNetCoreWebApp1"? -
是的,我已经添加了
-
为您的属性添加 HtmlAttributeName,例如
[HtmlAttributeName("all-caps")] -
一定会尝试并让您知道
-
这很奇怪,所以我通过简化名称并删除 [HtmlTargetElement("tag-name")] 来让它工作。我要去调查一些,并尝试找出它的实际原因
标签: asp.net-core asp.net-core-tag-helpers