ASP.NET MVC TagBuilder.SetInnerText()がテキストを正しく設定していない

StackOverflow https://stackoverflow.com/questions/1439829

  •  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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top