2008-11-07 2 views
5

Ich entwickle einen HTML-Formular-Designer, der statisches HTML generieren und dem Benutzer zeigen muss. Ich halte das Schreiben hässlich Code wie folgt:Gibt es in C# 3.0 irgendwelche Klassen, die mir helfen, statisches HTML zu generieren?

public string GetCheckboxHtml() 
{ 
    return ("<input type="checkbox" name="somename" />"); 
} 

Gibt es nicht eine Reihe von stark Klassen getippt, die HTML-Elemente beschreiben und mir erlauben, Code wie dieser Stelle zu schreiben:

var checkbox = new HtmlCheckbox(attributes); 
return checkbox.Html(); 

Ich kann nur‘ Denken Sie an den richtigen Namespace, um nach diesem oder dem richtigen Suchbegriff in Google zu suchen.

Antwort

5

Nun, wenn Sie den Download der ASP.NET MVC DLL (die Sie in jede Art des Projekts verwenden können ... einschließlich Konsolenanwendungen) ... dann können Sie die vielen HTML-Helfer verwenden sie haben.

+0

Ich mag diese Lösung sehr. Ich werde das wahrscheinlich benutzen. Ich kann nicht glauben, dass ich die ASP.NET MVC HTML-Helfer vergessen habe. Vielen Dank! –

2

Eine Option ist die Verwendung XElementfunctional construction. Ein Beispiel für einen Kalendergenerator finden Sie unter this blog post.

In Ihrem Fall könnte Ihre Html mit generiert:

var input = new XElement("input", 
    new XAttribute("type", "checkbox"), 
    new XAttribute("name", "somename")); 

return input.ToString(); 
2

Sie die Klassen im System.Web.UI.HtmlControls Namespace verwenden könnte. Dann können Sie mit RenderControl den HTML-Inhalt generieren.

HtmlInputCheckBox box = new HtmlInputCheckBox(); 

StringBuilder sb = new StringBuilder(); 
using(StringWriter sw = new StringWriter(sb)) 
using(HtmlTextWriter htw = new HtmlTextWriter(sw)) 
{ 
    box.RenderControl(htw); 
} 
string html = sb.ToString(); 
+0

Dies scheint wie eine gute Lösung, aber ich bin nur besorgt über die "schwere" Art der HtmlControls in ASP.NET enthalten. Ich habe eine große Abneigung gegen ASP.NET WebForms (ich bevorzuge ASP.NET MVC), die mich beeinträchtigen könnten. Ich schätze Ihre Eingabe jedoch sehr. –

+0

Eigentlich stimme ich dir zu =) –

0

HtmlTextWriter enthält Goodies wie "WriteStartTag" und "WriteEndTag", die verwendet werden können, um korrekt formatiertes HTML zu erstellen.

Sie übergeben im Wesentlichen die Tag-Namen und Attribute an die HtmlTextWriter, und es generiert die richtige HTML und wird es ordnungsgemäß mit WriteEndTag geschlossen.

Sie können auch die vordefinierten HTMLControls verwenden, die diesen Code in stark typisierte Klassen einschließen.

0

Verwenden Sie auch System.Xml. Indem Sie es verwenden, garantieren Sie fast, dass Ihr HTML XHTML-kompatibel ist.

Verwandte Themen