ASP.NET MVC TagBuilder.SetInnerText() 未正确设置文本
所以我正在创建一个 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() 没有正确设置文本的任何想法?
谢谢。
So I am creating a HtmlHelper extension method and I have run into a problem when using TagBuilder.SetInnerText(). The helper outputs an option tag. Here is the source of the helper:
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);
}
In my view I call
<%= Html.Option("value", "text", new { }) %>
but the inner text of the tag does not get set and I am left with
<option value="value"> </option>
Any ideas on why the SetInnerText() is not setting the text correctly?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它尝试输出
,但没有地方可以插入 InnerText。
做到:
It tries to output
<option value="" />
, where there is nowhere to insert InnerText.Make it:
我认为使用
InnerText
的正确方法如下。您需要在创建标签时以及定义额外属性后设置InnerText
。I think that correct way to use
InnerText
is this below. You need to setInnerText
on Create Tag, and after you define extra attributes.