我正在 asp.net 上制作一个项目,并显示数据库中的表格,我需要进行分页。一般来说,除了用于显示页面链接栏的帮助程序之外,一切正常。帮助程序代码如下所示:
public static class PagingHelpers
{
public static HtmlString PageLinks(this IHtmlHelper html, PageInfo pageInfo, Func<int, string> pageUrl)
{
StringBuilder result = new StringBuilder();
for (int i = 1; i <= pageInfo.totalPages; i++)
{
TagBuilder tag = new TagBuilder("a");
tag.MergeAttribute("href", pageUrl(i));
tag.InnerHtml.AppendHtml(i.ToString());
if (i == pageInfo.pageNumber)
{
tag.AddCssClass("selected");
tag.AddCssClass("btn-primary");
}
tag.AddCssClass("btn btn-default");
result.Append(tag.ToString());
}
return new HtmlString(result.ToString());
}
}
然而,重复显示变量标签的类型而不是链接。我在执行循环后设置了一个断点。显示带有链接的标记已正确形成,只是结果不包含带有标记的字符串,而是包含以下值:Microsoft.AspNetCore.Mvc.ViewFeatures.TagBuilder。如何确保标签准确地写入结果中。
我从未使用过它,但我阅读了文档,我认为它会起作用
StringWriter。顺便问一下,为什么你会回来
HtmlString,而不是例如IHtmlContent?如果这是可能的,那么可以通过使用来改进代码并节省内存HtmlContentBuilder。