代码之家  ›  专栏  ›  技术社区  ›  citronas

如何在使用htmltextwitter渲染时正确添加属性?

  •  11
  • citronas  · 技术社区  · 14 年前

    我想将href属性添加到链接元素。这是我的代码:

    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>
    

    出了什么问题,我该怎么解决?

    1 回复  |  直到 14 年前
        1
  •  36
  •   Gabriel McAdams    14 年前

    使用htmltextwitter时,必须在添加标记名之前添加属性。这样地:

      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>