【发布时间】:2020-05-20 07:39:54
【问题描述】:
我实现了一个自定义标签助手来生成页码作为链接。 “Process”方法被触发,字符串生成器包含所有 HTML 内容,但它不会在屏幕上输出结果。它只是渲染,有人可以帮忙吗?
<paginate page="Model.PageInfo" />
[HtmlTargetElement("paginate",
TagStructure = TagStructure.WithoutEndTag)]
public class PaginateTagHelper : TagHelper
{
public PageInfo Page { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
StringBuilder html = new StringBuilder();
html.Append("<div>");
for (int i = 1; i <= Page.TotalPages; i++)
{
var tag = new Microsoft.AspNetCore.Mvc.Rendering.TagBuilder("a");
tag.MergeAttribute("href", Page.PageUrl(i));
tag.InnerHtml.AppendHtml(i.ToString());
if (i == Page.CurrentPage)
{
tag.AddCssClass("selected");
tag.AddCssClass("btn-primary");
}
tag.AddCssClass("btn btn-default");
html.Append(GetTagContent(tag));
}
html.Append("</div>");
output.Content.SetHtmlContent(html.ToString());
}
private string GetTagContent(IHtmlContent content)
{
using (var writer = new System.IO.StringWriter())
{
content.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
return writer.ToString();
}
}
}
【问题讨论】:
-
您是否在
_ViewImports.cshtml或对应视图中注册了自定义标签助手? -
我当然做到了。正如我提到的,过程方法被调用。
标签: asp.net asp.net-mvc asp.net-core asp.net-core-tag-helpers