【发布时间】:2016-05-20 03:55:21
【问题描述】:
我已经尝试了这两种不同的方法..在论坛上也不是很多。
我正在尝试创建一个自定义 taghelper,随着我的前进慢慢构建它。它会生成一个动态菜单,但是我没有从字符串生成器获得正确的输出。
我正在尝试为 precontent 制作这个:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
这用于发布内容:
</ul>
</div>
我打算将其添加为 output.precontent 和 output.postcontent。我还决定对每个标签使用标签构建器方法,并将它们添加到字符串构建器中,最终将其呈现为上述预内容。这就是我想出的。
StringBuilder PreContentSb = new StringBuilder();
StringBuilder PostContentSb = new StringBuilder();
TagBuilder divTag = new TagBuilder("div");
TagBuilder ul = new TagBuilder("ul");
divTag.MergeAttribute("class", "navbar - collapse collapse");
divTag.TagRenderMode = TagRenderMode.SelfClosing;
ul.MergeAttribute("class", "nav navbar - nav");
ul.TagRenderMode = TagRenderMode.SelfClosing;
PreContentSb.Append(' ', 12);
PreContentSb.Append(divTag.InnerHtml.ToString());
PreContentSb.Append(Environment.NewLine);
PreContentSb.Append(' ', 16);
PreContentSb.Append(ul.ToString());
PreContentSb.Append(Environment.NewLine);
output.PreContent.SetContent(PreContentSb.ToString());
PostContentSb.Append(' ', 16);
PostContentSb.Append("</ul>");
PreContentSb.Append(Environment.NewLine);
PostContentSb.Append(' ', 12);
PostContentSb.AppendLine("</div>");
PreContentSb.Append(Environment.NewLine);
output.PostContent.SetContent(PostContentSb.ToString());
taghelper 只在一个地方,所以我想我会缩进那个地方,例如“PreContentSb.Append(' ', 12);”..
我得到的问题是,当我查看页面源时,我得到的这些标签如下:
Microsoft.Extensions.Internal.BufferedHtmlContent
 Microsoft.AspNet.Mvc.Rendering.TagBuilder
 </ul> </div>

首先它根本不渲染标签构建的标签,其次它不是用引号和尖括号来显示实际的字符实体引用..
如何简单地显示反逗号、尖括号?
最后如何在 stringbuilder 中渲染 tagbuilder 元素?
【问题讨论】:
标签: asp.net-core asp.net-core-mvc