Ho un PartialView che contiene un codice HTML con annotazioni Razor. Mi genera una pagina che voglio inviare via email a chiunque. C'è un modo per tradurre questo PartialView in contenuto HTML per inviarlo?Invia contenuto PartialView come e-mail
5
A
risposta
5
Io suggerirei di usare MvcMailer che fa esattamente ciò che si vuole (senza dover scrivere il codice per esso .. si può anche farlo in modo asincrono):
https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
Aggiornamento
Come indicato nei commenti, la soluzione per implementarla da soli (credo ancora che MvcMailer ti semplificherà la vita):
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: How to render a Razor Partial View's HTML inside the controller action)
Forse questo può aiutare: http://akinyusufer.blogspot.in/2011/05/razor-render-mvc3-view-render-to-string.html –
Possibilmente stessa preoccupazione/risposta come questo: [Rasoio MVC ASP.NET: come eseguire il rendering del codice HTML di una visualizzazione parziale del rasoio all'interno dell'azione del controller] (http://stackoverflow.com/a/4344602/1036187) – rivarolle
possibile duplicato di [Rasoio MVC ASP.NET : Come visualizzare il codice HTML di un Razor Partial all'interno dell'azione del controller] (http://stackoverflow.com/questions/4344533/asp-net-mvc-razor-how-to-render-a-razor-partial-views-html -inside-the-controll) –