2010-01-19 3 views

Répondre

-2

Dans une vue, nous avons une méthode nommée Html.Partial qui rend un partiel à une chaîne. Dans votre contrôleur, vous pouvez instancier une instance de HtmlHelper, puis appeler la méthode d'extension partielle. Assurez-vous d'importer l'espace de noms System.Web.Mvc.Html dans votre contrôleur.

+2

Quelle question curieusement acceptée. Question: "rendre une vue d'une classe, qui n'est pas contrôleur?" Réponse: "Au sein de votre contrôleur ..." –

3

L'open source Razor Engine fait exactement ce dont vous avez besoin: https://github.com/Antaris/RazorEngine

string razorText = System.IO.File.ReadAllText(razorTemplateFileLocation); 
string emailBody = Razor.Parse(razorText, yourViewModel); 
0

Je l'ai fait en utilisant ceci:

Rendering ASP.NET MVC Razor Views outside of MVC

Assez facile. Vous avez juste besoin d'ajouter une classe (ViewRenderer.cs) et il est prêt à l'emploi.

Par exemple, je peux mettre ce code en dehors du contrôleur:

string html = ViewRenderer.RenderView($"~/Views/Partials/Email/WelcomeEmail.cshtml", viewModel); 
Questions connexes