これはおそらく簡単な修正ですが、出力にマークアップが表示されるようHtmlTextWriter
にHtmlHelper
、何を試しても HTML をエンコードしています。
ヘルパー:
protected override void WriteHtml(System.Web.UI.HtmlTextWriter writer)
{
writer.WriteFullBeginTag("div");
writer.WriteEndTag("div");
base.WriteHtml(writer);
}
そして、これをページに出力します:<div></div>
編集
私はこのようにビューでそれを呼び出しています:
@Html.SAIF().Toolbar().Items(items => {
items.Add().Action("Action");
... ...
})
編集#2
わかりました、これをもう少しうまく説明できるか見てみましょう。
ViewContext.Writer を使用してヘルパーをストリームに書き込む場合、次のような構文を使用します。
@Html.MyHelper
エンコードされた HTML を出力します (例) <div>Test Div</div>
= 正しくありません
次のような構文を使用する場合:
@{Html.MyHelper.Render();}
正しくレンダリングされます。つまり、div を文字列として表示するのではなく、実際に DOM に挿入します。
わかる?