ASP.NET MVC TagBuilder.SetInnerText()がテキストを正しく設定していない
-
10-07-2019 - |
質問
したがって、HtmlHelper拡張メソッドを作成していますが、TagBuilder.SetInnerText()を使用すると問題が発生します。ヘルパーはオプションタグを出力します。ヘルパーのソースは次のとおりです。
public static string Option(this HtmlHelper helper, string value, string text, object htmlAttributes) {
TagBuilder tagBuilder = new TagBuilder("option");
tagBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
tagBuilder.MergeAttribute("value", value);
tagBuilder.SetInnerText(text);
return tagBuilder.ToString(TagRenderMode.SelfClosing);
}
私の見解では、私は電話します
<%= Html.Option("value", "text", new { }) %>
しかし、タグの内部テキストは設定されず、私は残されています
<option value="value"> </option>
SetInnerText()がテキストを正しく設定しない理由についてのアイデアはありますか?
ありがとう。
解決
return tagBuilder.ToString(TagRenderMode.SelfClosing) - is the problem
InnerTextを挿入する場所がない<option value="" />
を出力しようとします。
作成:
return tagBuilder.ToString(TagRenderMode.Normal)
他のヒント
InnerText
の正しい使用方法は次のとおりだと思います。タグの作成で<=>を設定する必要があり、追加の属性を定義した後。
TagBuilder tagBuilder = new TagBuilder("select")
{
InnerHtml = "set Anything"
};
tagBuilder.MergeAttribute("value", value);
所属していません StackOverflow