2011-01-26 4 views
31

Possible en double:
Is it possible to use Razor View Engine outside asp.netL'utilisation de rasoir sans MVC

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 visualisation de modèle Razor qui vient dans ASP.NET MVC 3. Ça a l'air génial, 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 rendent l'utilisation de Razor directement plus facile. Comme:

  1. de modèle d'hébergement Razor Rick Strahl Moteur- http://www.west-wind.com/weblog/posts/864461.aspx
  2. moteur rasoir sur CodePlex - http://razorengine.codeplex.com/

Quelqu'un at-il des conseils sur l'utilisation de rasoir à l'extérieur de MVC en tant que moteur de modèle autonome? Une expérience avec ces projets wrapper? Y at-il d'autres implémentations d'hébergement Razor que je devrais examiner?

Répondre

23

Jetez aussi un coup d'œil à cette question: Is it possible to use Razor View Engine outside asp.net

+1

Trois réponses bonnes et utiles. Difficile d'en choisir un. J'ai choisi celui-ci parce qu'il est lié à un quetsion stackoverflow que je devrais avoir trouvé moi-même et ce poste lié à l'article de blog Andre Nurse à http://blog.andrewnurse.net/2010/07/22/UsingTheRazorParserOutsideOfASPNet.aspx –

+1

La page liée au-dessus a déménagé; pour référence future, son emplacement à ce moment est [ici] (http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html). – Jon

5

Vous pouvez jeter un oeil à la following blog post qui illustre comment vous pourriez utiliser le moteur de vue Razor pour rendre un modèle à une chaîne.

4

Phil Haack posted about this way to do it 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()); 
    
+0

Simple prend la journée dans mon livre. Merci d'avoir laissé tomber ce @Simon_Weaver! Vous semblez être un gars qui pourrait juste sortir avec @JonSkeet vous avez tellement de crédibilité! :-) C'est payant de fouiller dans toutes les réponses. :-) –

3

Regardez la bibliothèque RazorTemplates. Il est plus léger que la bibliothèque RazorEngine, il est thread-safe et possède une très belle interface minimale.