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