2011-01-26 31 views
31

Eventuali duplicati:
Is it possible to use Razor View Engine outside asp.netUtilizzando Razor senza MVC

ho bisogno di unire i modelli con i dati per creare stringhe univoche in fase di esecuzione. È stato suggerito di guardare il motore di visualizzazione dei modelli Razor fornito in ASP.NET MVC 3. Sembra fantastico, ma ho bisogno di usarlo al di fuori della creazione della vista MVC.

So che posso utilizzare direttamente il motore Razor di base, ma ho anche trovato un paio di progetti che rendono l'utilizzo di Razor direttamente più semplice. Come:

  1. di Rick Strahl Razor Hosting Template Motori- http://www.west-wind.com/weblog/posts/864461.aspx
  2. Razor motore su CodePlex - http://razorengine.codeplex.com/

Qualcuno ha qualche guida all'uso di Razor al di fuori di MVC come un motore di template standalone? Qualche esperienza con questi progetti di wrapper? ci sono altre implementazioni di hosting dei Razor che dovrei esaminare?

risposta

23

prendere anche uno sguardo a questa domanda: Is it possible to use Razor View Engine outside asp.net

+1

Tre risposte buono e utile. Difficile sceglierne uno. Ho scelto questo perché è collegato a una query StackOverflow che avrei dovuto trovare io e quel post collegato al post del blog di Andre Nurse all'indirizzo http://blog.andrewnurse.net/2010/07/22/UsingTheRazorParserOutsideOfASPNet.aspx –

+1

La pagina collegata al di sopra si è mosso; per riferimento futuro, la sua posizione al momento è [qui] (http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html). – Jon

5

È possibile dare un'occhiata allo following blog post che illustra come utilizzare il motore di visualizzazione Razor per eseguire il rendering di un modello su una stringa.

4

Phil Haack posted about this way to do it utilizzando una classe generata.

  • Si crea un file .cshtml e quindi si utilizza un'estensione di compilazione sul file per generare una classe. Poi si può solo fare questo:

    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

Semplice prende il giorno nel mio libro. Grazie per aver lasciato questo @Simon_Weaver! Sembri un ragazzo che potrebbe semplicemente frequentare @JonSkeet, hai così tanto credito! :-) Si paga per scavare attraverso tutte le risposte. :-) –

3

Guarda RazorTemplates biblioteca. È più leggero della libreria RazorEngine, è thread-safe e ha un'interfaccia minimale molto bella.Trovato

Problemi correlati