我正在运行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>
答案 0 :(得分:1)
第1点: [HtmlTargetElement("tag-name")]
必须与实际HTML标记相同,即reverse-text-div
。它应该是[HtmlTargetElement("reverse-text-div")]
第2点:为您的媒体资源申请HtmlAttributeName
,例如[HtmlAttributeName("all-caps")]