Визуализация Razor View в строку с помощью консольного приложения.Net Core
Я подготовил консольное приложение ядра.net (версия Framework.Net Core 2.2) для отправки электронной почты в качестве службы. Прямо сейчас он работает совершенно нормально, статический html контент жестко закодирован в сервисный метод для генерации строки тела письма. Я в поисках кода, который предоставляет мне решение для визуализации бритвы, чтобы иметь HTML-строку с данными модели.
Пытался внедрить DLL RazorEngine в платформу сущностей ver. 4,5. с кодом ниже
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GenerateEmailUsingRazor.Model;
using RazorEngine.Templating;
namespace GenerateEmailUsingRazor
{
class Program
{
static readonly string TemplateFolderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "EmailTemplates");
static void Main(string[] args)
{
var model = GetUserDetail();
var emailTemplatePath = Path.Combine(TemplateFolderPath, "InviteEmailTemplate.cshtml");
var templateService = new TemplateService();
var emailHtmlBody = templateService.Parse(File.ReadAllText(emailTemplatePath), model, null, null);
Console.WriteLine(emailHtmlBody);
Console.ReadLine();
}
private static UserDetail GetUserDetail()
{
var model = new UserDetail()
{
Id = 1,
Name = "Test User",
Address = "Dummy Address"
};
for (int i = 1; i <= 10; i++)
{
model.PurchasedItems.Add("Item No " + i);
}
return model;
}
}
}
Ожидаемый результат:
Консольное приложение должно отобразить бритву и предоставить мне результирующую строку html.
0 ответов
Я написал чистую библиотеку Razor.Templating.Core, которая работает с.NET Core 3.0, 3.1 как в веб-приложении, так и в консольном приложении. Он доступен как пакет NuGet. После установки можно звонить как
var htmlString = await RazorTemplateEngine
.RenderAsync("/Views/ExampleView.cshtml", model, viewData);
Примечание. Приведенный выше фрагмент не будет работать сразу. Пожалуйста, обратитесь к рабочему руководству ниже, чтобы узнать, как его применять.
Полное рабочее руководство: https://medium.com/@soundaranbu/render-razor-view-cshtml-to-string-in-net-core-7d125f32c79
Примеры проектов: https://github.com/soundaranbu/RazorTemplating/tree/master/examples