La génération de code HTML à l'aide d'un modèle à partir d'un .NET application
J'ai un .NET application console qui a besoin de générer des fichiers HTML. Je pourrais juste à construire le code HTML dans un StringBuilder et écrire le contenu d'un fichier, mais je pensais qu'il serait plus agréable à utiliser certains types de modèle de fichier avec des espaces réservés pour les cas où les données et traiter mes données à travers elle au moment de l'exécution.
Je devine qu'il y a des façons d'utiliser aspx, ou T4, ou de certains de l'autre point de vue, les moteurs que vous pouvez utiliser avec ASP.NET MVC, mais je ne sais pas ce qui serait le plus facile à intégrer dans une application console (ou comment je pourrais aller sur l'intégration de mer).
J'ai envie de finir en mesure d'appeler quelque chose de la forme:
GenerateHtml(htmlPath, template, customDataObject);
OriginalL'auteur Mark Heath | 2009-05-22
Vous devez vous connecter pour publier un commentaire.
Comme Matt mentionné, la spark est sympa, mais il pourrait être trop pour certains modèles et devient compliqué si vous ne l'utilisez pas dans MVC.
J'ai personnellement eu beaucoup de succès avec NVelocity et j'ai aussi publier un exemple simple/wrapper de l'utiliser: http://simpable.com/code/simpletemplate/
En outre, GraffitiCMS de l'ensemble de la thématisation de fonctionnement du système sur NVelocity (bien que je l'aurais utilisé étincelle si elle était disponible pour cette tâche).
-Scott
finalement je l'ai eu à travailler après téléchargement de l'intégralité du château de la source du projet et de la construction de ma propre NVelocity.dll. Il a également pris un certain temps à travailler sur la façon de charger mon modèle correctement, mais une fois que je l'ai fait il répond à mes besoins parfaitement. merci
Hey Scott, il aurait été agréable d'avoir au moins quelques indications sur cette page. Apparemment le site est en panne
Avez-vous été en mesure de résoudre ce problème? Comment?
ici, vous allez markheath.net/post/creating-html-using-nvelocity
OriginalL'auteur Scott Watermasysk
D'une manière que vous pourriez faire c'est créer un fichier XSL comme modèle, serialise votre
customDataObject
comme XML puis effectuer une transformation pour générer le code HTML requis.Mise à jour: Alors que j'aime (et utilisent) la chaîne de remplacement de la méthode préconisée par d'autres gens ici, il y a une certaine flexibilité à l'aide de XML/XSL. Dire que votre objet a une propriété qui est une liste, par exemple un objet de commande avec une liste d'élément de ligne des objets, vous devez brûler dans votre code, la logique qui a rendu les éléments de ligne.
Avec XSL tout ce que vous faire est de passer la sérialisés ordre de l'objet XML XSL et de laisser le XSL gérer tout ce HTML, il doit générer. Cela signifie que vous pouvez souvent modifier le code XSL en place ou ont des variantes (récapitulatif de commande, commande détaillée, etc), sans ajouter du code supplémentaire à votre application avec tous les tracas de la reconstruction/deploy.
Mais ensuite tout dépend de la complexité de ce que vous avez besoin de calculer, pour certains emplois de la chaîne de remplacement est plus évident, pour d'autres XSL est le chemin. Comme je l'ai dit, nous utilisons à la fois.
OriginalL'auteur Kev
Voici un code qui illustre d'une manière assez simple à accomplir ce que vous essayez de faire:
À l'aide de cela, tout ce que vous avez à faire est de créer des templates HTML et de les remplir avec des remplaçable jetons tels que [TITRE], [METAKEYWORDS], etc. Puis, en passant anonyme des objets qui contiennent les valeurs de remplacer les jetons avec. Vous pouvez aussi remplacer la valeur de l'objet avec un dictionnaire ou quelque chose de similaire.
Comme je l'ai dit, vous pouvez utiliser un dictionnaire au lieu d'un objet codé en dur; cela signifie que vous pouvez avoir une collection de boucle à travers si vous ne savez pas au moment de la compilation de ce que vos champs sont en passe de l'être.
OriginalL'auteur Nathan Ridley
Découvrez docu. Il utilise l'Étincelle de vue du moteur de rendu basé sur un modèle HTML à partir d'une application console. Assez simple.
OriginalL'auteur Matt Hinze
Une autre option au lieu d'utiliser XSLT comme Kev suggère est d'utiliser nommée mise en forme de chaîne. En utilisant le code comme cet exemple par Phil Haack.
Ici, vous pouvez avoir votre modèle comme une chaîne de caractères (lire à partir d'un fichier peut-être) et le format à l'aide de l'objet donné.
Maintenant, vous pourriez faire quelque chose comme ceci:
OriginalL'auteur Rune Grimstad
Il y a plusieurs façons,
1 - à l'Aide du moteur d'affichage (Rasoir, une Étincelle, ...) - c'est bon si vous êtes en utilisant mvc
2- En utilisant le fichier XSLT et de transformer le xml donné à Html
3- À L'Aide De Modèles De Texte T4 (Meilleure performance, facile à comprendre)
OriginalL'auteur Behzad