3

そのため、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()がテキストを正しく設定していない理由について何か考えはありますか?

ありがとう。

4

2 に答える 2

10
return tagBuilder.ToString(TagRenderMode.SelfClosing) - is the problem

<option value="" />InnerTextを挿入する場所がない場所に出力しようとします。

成功する:

return tagBuilder.ToString(TagRenderMode.Normal)
于 2009-09-17T16:16:04.483 に答える
-1

正しい使い方InnerTextは以下だと思います。InnerTextタグの作成を設定し、追加の属性を定義した後、設定する必要があります。

TagBuilder tagBuilder = new TagBuilder("select")
{
    InnerHtml = "set Anything"
};
tagBuilder.MergeAttribute("value", value);
于 2019-04-26T17:22:00.123 に答える