Отправить содержимое PartialView по электронной почте
У меня есть PartialView, который содержит HTML-код с аннотациями Razor. Он генерирует для меня страницу, которую я хочу отправить по электронной почте кому угодно. Есть ли способ перевести этот PartialView в HTML-контент, чтобы отправить его?
1 ответ:
Я бы предложил использовать MvcMailer, который делает именно то, что вы хотите (без необходимости писать код для него.. он также может делать это асинхронно):
Https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
Обновить
Как указано в комментариях, решение для реализации его самостоятельно (я все еще думаю, что MvcMailer сделает вашу жизнь проще):
protected string RenderPartialViewToString(string viewName, object model) { if (string.IsNullOrEmpty(viewName)) viewName = ControllerContext.RouteData.GetRequiredString("action"); ViewData.Model = model; using (StringWriter sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); viewResult.View.Render(viewContext, sw); return sw.GetStringBuilder().ToString(); } }
( ASP.NET MVC Razor: как сделать бритву частичной HTML вида внутри действия контроллера )