Il y a eu beaucoup de discussions sur View-engines pour ASP.NET MVC et quelques critiques contre le "tag-soup" en ligne avec for- boucles et chose comme ça. L'alternative ou le complément a été d'utiliser des aides HTML, qui ne sont que des appels de méthode en ligne.ASP.NET MVC: Utilisation de LINQ to XML pour rendre (X) HTML
Lorsque je regarde dans les HTML-aiders d'ASP.NET MVC aujourd'hui, ils utilisent une classe appelée TagBuilder.
Ma proposition est de utiliser LINQ pour XML pour obtenir fortement typé et correctement formaté (X) HTML:
XDocument output = new XDocument();
XElement root = new XElement("div",
new XAttribute("class", "root_item"));
XElement iconImage = new XElement("img",
new XAttribute("src", ResolveUrl("~/image.gif")),
new XAttribute("alt", "This is an image"));
XElement link = new XElement("a",
new XAttribute("class", "link"),
new XAttribute("href", "http://google.com"),
new XText("Link to Google"));
root.Add(link);
root.Add(iconImage);
output.Add(root);
Je l'aime parce qu'il est comme le contrôle fortement typé dans WebForms, où vous pouvez nouveau -up un bouton et l'ajouter à Control-collection d'un autre contrôle.
Y a-t-il des problèmes apparents ou des limitations à cela?
Personnellement, je ne suis pas fan de TagBuilder, et j'ai dans la plupart des cas eu recours à la construction de la mienne, qui n'est en fait rien de plus qu'une chaîne.Format(). J'aime votre méthodologie, mais pourquoi ne pas utiliser TagBuilder? Vous pouvez faire le même genre de chose avec TagBuilder. –