私はこの2つの異なる方法を試しました。これはフォーラムでも大したことではありません。TagbuilderとTagbuilderとstringbuilderを使用してoutput.precontentをレンダリングするときの問題
私は前進しながらゆっくりと構築するカスタムタグヘルパーを作成しようとしています。その動的メニューを生成するには、しかし、私は文字列ビルダーから正しい出力を得ていない。
私はprecontentのためにこれを生成しようとしています:
postcontentため <div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
と、この:
</ul>
</div>
私はoutput.precontentとoutput.postcontentとしてこれを追加するためのもの。また、タグごとにtagbuilderのアプローチを使用し、それらをstringbuilderに追加して、最終的にそれを前の予告とすることに決めました。これは私が思いついたものです。
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>

そのすべてが全くtagbuiltタグをレンダリングし、第二の代わりに引用符や角度のないの最初に実際の表示のをブラケット:取得は、私はページのソースを見ると、私はこれらのタグは、以下のために、取得していますということです文字エンティティ参照。
括弧でくくられたカンマを単に表示するにはどうすればよいですか?
最後に、タグビルダ要素を文字列ビルダでどのようにレンダリングしますか?
簡単な質問、例では、属性についてですが、それはあなたにそれを行う方法についてのアイデアを与える必要があります - どのように私はのwriteToは()のStringBuilderにTagBuilderの内容を追加するために使用しますか? (これを投票します) – si2030
var writer = new System.IO.StringWriter(); divTag.WriteTo(ライター、新しいHtmlEncoder()); var s = writer.ToString(); – si2030