我想将href属性添加到link元素。这是我的代码:
System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
using (System.IO.StringWriter stringWriter = new System.IO.StringWriter(stringBuilder))
{
using (System.Web.UI.HtmlTextWriter htmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter))
{
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Ul);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Li);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.A);
htmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.google.de");
htmlTextWriter.Write("Google");
htmlTextWriter.RenderEndTag();
htmlTextWriter.RenderEndTag();
htmlTextWriter.RenderEndTag();
}
}
它呈现为:
<ul>
<li><a>Google</a></li>
</ul>
这就是我的预期。
<ul>
<li><a href="http://www.google.de">Google</a></li>
</ul>
出了什么问题,我该如何解决这个问题?
请不要回答我可以用其他方式组装字符串。我想知道如何使用HtmlTextWriter
实现这一目标答案 0 :(得分:32)
使用HtmlTextWriter时,必须在添加标记名称之前添加属性。像这样:
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Ul);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Li);
htmlTextWriter.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.google.de");
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.A);
htmlTextWriter.Write("Google");
htmlTextWriter.RenderEndTag(); //A
htmlTextWriter.RenderEndTag(); //LI
htmlTextWriter.RenderEndTag(); //UL
它将呈现如下:
<ul>
<li><a href="http://www.google.de">Google</a></li>
</ul>