Отобразить вид на строку вне контроллера? - PullRequest
2 голосов
/ 19 января 2010

Можно ли визуализировать представление из класса, который не является контроллером?

Например, у меня есть класс, который будет возвращать некоторые данные, такие как элементы управления, которые я хочу получить из моего представления.

Возможно ли это?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 18 сентября 2013

Razor Engine с открытым исходным кодом делает именно то, что вам нужно: https://github.com/Antaris/RazorEngine

string razorText = System.IO.File.ReadAllText(razorTemplateFileLocation);
string emailBody = Razor.Parse(razorText, yourViewModel);
2 голосов
/ 26 мая 2016

Я сделал это, используя это:

Отображение видов бритвы ASP.NET MVC вне MVC

Довольно просто. Вам просто нужно добавить один класс ( ViewRenderer.cs ), и он готов к использованию.

Например, я могу поместить этот код вне контроллера:

string html = ViewRenderer.RenderView($"~/Views/Partials/Email/WelcomeEmail.cshtml", viewModel);
0 голосов
/ 19 января 2010

В представлении у нас есть метод с именем Html.Partial, который отображает частичное в строку.В вашем контроллере вы можете создать экземпляр HtmlHelper и затем вызвать для него метод частичного расширения.Убедитесь, что вы импортировали пространство имен System.Web.Mvc.Html в свой контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...