ASP.NET MVC TagBuilder.SetInnerText()未正确设置文本

Tim*_*nks 2 c# asp.net-mvc tagbuilder

所以我正在创建一个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);
    }
Run Code Online (Sandbox Code Playgroud)

在我看来,我打电话

<%= Html.Option("value", "text", new { }) %>
Run Code Online (Sandbox Code Playgroud)

但标签的内部文本没有设置,我留下了

<option value="value"> </option>
Run Code Online (Sandbox Code Playgroud)

关于为什么SetInnerText()没有正确设置文本的任何想法?

谢谢.

小智 8

return tagBuilder.ToString(TagRenderMode.SelfClosing) - is the problem
Run Code Online (Sandbox Code Playgroud)

它试图输出<option value="" />,无处可插入InnerText.

做了:

return tagBuilder.ToString(TagRenderMode.Normal)
Run Code Online (Sandbox Code Playgroud)