web-dev-qa-db-fra.com

Utilisation de Razor sans MVC

Duplicata possible:
Est-il possible d'utiliser Razor View Engine en dehors d'asp.net

J'ai besoin de fusionner des modèles avec des données pour créer des chaînes uniques lors de l'exécution. Il a été suggéré que je regarde le moteur de vue Razor qui est fourni avec ASP.NET MVC 3. Il a l'air bien, mais je dois l'utiliser en dehors de la création de vue MVC.

Je sais que je peux utiliser directement le moteur Razor de base, mais j'ai également trouvé quelques projets qui facilitent l'utilisation directe de Razor. Comme:

  1. Moteur de modèle d'hébergement de rasoir de Rick Strahl - http://www.west-wind.com/weblog/posts/864461.aspx
  2. Moteur de rasoir sur GitHub - https://github.com/Antaris/RazorEngine

Quelqu'un a-t-il des conseils sur l'utilisation de Razor en dehors de MVC en tant que moteur de modèle autonome? Avez-vous de l'expérience avec ces projets d'emballage? Existe-t-il d'autres implémentations d'hébergement Razor que je devrais étudier?

43
Michael Levy

Vous pouvez jeter un oeil à article de blog suivant qui illustre comment vous pouvez utiliser le moteur de vue Razor pour rendre un modèle en chaîne.

7
Darin Dimitrov

Si vous souhaitez générer du contenu réel à partir d'un modèle de rasoir, vous pouvez utiliser RazorEngine .

7
mahesh

Regardez RazorTemplates bibliothèque. Il est plus léger que la bibliothèque RazorEngine, il est compatible avec les threads et possède une interface minimale très agréable.

5
alexey

Phil Haack posté sur cette façon de le faire en utilisant une classe générée.

  • Vous créez un fichier .cshtml puis utilisez une extension de temps de compilation sur le fichier pour générer une classe. Ensuite, vous pouvez simplement faire ceci:

    var template = new RazorTemplate {
        Model = new[] { 
            new {Name = "Scott", Id = 1},
            new {Name = "Steve", Id = 2},
            new {Name = "Phil", Id = 3},
            new {Name = "David", Id = 4}
        }
    };
    Console.WriteLine(template.TransformText());
    
4
Simon_Weaver

Il y a un bon article sur l'utilisation de RazorEngine: Comment créer un moteur de modèle de texte localisable à l'aide de RazorEngine

2
Malkov

Trouvé une bibliothèque vraiment sympa par Jaap Lamfers:

Moteur de modèle Razor 2.0, prenant en charge les dispositions (sur CodeProject)

RazorMachine (sur GitHub)

Qualités:

  • prise en charge _ViewStart
  • mise en page de soutien
  • extensible (prend en charge quelque chose comme MVC ViewEngines)
  • contient des échantillons
  • beaucoup de tests unitaires
  • il est bien documenté (voir lien CodeProject)
2
Miguel Angelo