【问题标题】:Asp.net MVC core custom tag helper not generate outputAsp.net MVC 核心自定义标签助手不生成输出
【发布时间】: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


【解决方案1】:

去掉TagStructure = TagStructure.WithoutEndTag,自闭标签不适合有内容的标签。

Self-closing TagHelpers

许多标签助手不能用作自闭合标签。一些标签助手被设计为自闭合标签。使用不是为自动关闭而设计的 Tag Helper 会抑制呈现的输出。自关闭 Tag Helper 会在呈现的输出中产生自关闭标签。

【讨论】:

  • 工作。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多