因此,我正在创建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


它尝试输出<option value="" />,在此无处插入InnerText。

做了:

return tagBuilder.ToString(TagRenderMode.Normal)

10-06 12:18