2009-08-22 4 views
1

Ich habe dieseWas bin ich falsch HtmlWriter tun nicht Attribut schreiben

foreach (var columnName in columns) 
{ 

    writer.RenderBeginTag(HtmlTextWriterTag.A); 
    writer.AddAttribute("href", null); 
    writer.Write("Delete"); 
    writer.RenderEndTag(); 
} 

Als ich nach dieser Methode in meine HTML-Helper-Klasse bekommen, die ich machte es für eine Schleife durch das geht auf, wie viele Spalten in einem sind String [] Spaltenparameter. Das erste Mal, wenn es umgeht, bekomme ich diese

<a>Delete</a> 

2nd time it goes around 

<a href="">Delete</a> 

3rd time I get 

<a href="">Delete</a> 

and so on. 

Warum fehlt der erste "href"? Ich verstehe es nicht.

Eine weitere Sache der Schreiber wird auch in als Parameter übergeben.

Hier ist eine Konsolenanwendung ist. Ich werfe nur schnell zusammen

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Web.UI; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var writer = new HtmlTextWriter(new StringWriter()); 

      string[] columns = new string[4]; 
      columns[0] = "hi"; 
      columns[1] = "bye"; 
      columns[2] = "hi"; 
      columns[3] = "bye"; 

      foreach (var columnName in columns) 
      { 

       writer.RenderBeginTag(HtmlTextWriterTag.A); 
       writer.AddAttribute("href", "g"); 
       writer.Write("Delete"); 
       writer.RenderEndTag(); 
      } 
      Console.WriteLine(writer.InnerWriter.ToString()); 
     } 
    } 
} 

Antwort

3

Ändern der Folge von Anweisungen:

writer.AddAttribute("href", "g"); 
writer.RenderBeginTag(HtmlTextWriterTag.A);         
+0

Müsste das nicht erraten. Danke – chobo2

+0

Ja, es ist ein bisschen seltsam, aber es ist einfach sich daran zu gewöhnen. Ich bin bei der ersten Verwendung eines HtmlWriter auf dieses Problem gestoßen. Was noch schlimmer ist, wenn Sie ein HtmlGenericControl verwenden, das Sie zuerst '= new HtmlGenericControl (" a ") erstellen;' und * dann * tun Sie das '.Attributes.Add (" href "," g ")' (wenn Sie es wären Erstellen einer generischen Kontrolle des a-Tags. – Joshua

Verwandte Themen