net core 正确自定义 TagHelper
自定义一个 友情链接 的tag
创建一个数据源
namespace NetDream.Models
{
public class FriendLinkModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public static List<FriendLinkModel> All()
{
var data = new List<FriendLinkModel>();
data.Add(new FriendLinkModel()
{
Name = "ZoDream",
Url = "https://zodream.cn",
});
return data;
}
}
}
定义 TagHelper
namespace NetDream.Base.TagHelpers
{
public class FriendLinkTagHelper : TagHelper
{
public string Title = "友情链接";
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "div";
output.Attributes.Add("class", "friend-link");
var html = new StringBuilder();
html.AppendFormat("<div>{0}</div><div>", Title);
var items = FriendLinkModel.All();
foreach (var item in items)
{
html.AppendFormat("<a href=\"{0}\" target=\"_blank\" rel=\"noopener noreferrer\">{1}</a>", item.Url, item.Name);
}
html.Append("</div>");
output.Content.SetHtmlContent(html.ToString());
}
}
}
使用
先在 _ViewImports.cshtml
添加以下代码
注意 netdream
是本项目的程序集名称,并不是命名空间
没看源码,大致猜测这个是动态引用的即使用时临时检索 程序的dll 引入tagHelper
程序集名称查看方法:
右键项目-> 属性 -> 应用程序 -> 程序集名称(N):
然后在 Home.cshtml
使用
最终就会输出友情链接了
转载请保留原文链接: https://zodream.cn/blog/id/82.html