Mi piacerebbe utilizzare le funzionalità di Binding/Rendering modello di una Razor View per generare il contenuto del corpo HTML per un'e-mail che sto inviando dalla mia applicazione ASP.NET MVC.Posso utilizzare una vista Razor MVC ASP.Net per generare un corpo HTML ben formattato come input per un messaggio di posta elettronica inviato dal server?
C'è un modo per rendere una vista a una stringa invece di restituirla come ActionResult di una richiesta GET?
Per illustrare Sto cercando qualcosa che farà il seguente ...
public ActionResult SendEmail(int id)
{
EmailDetailsViewModel emailDetails = EmailDetailsViewModel().CreateEmailDetails(id);
// THIS IS WHERE I NEED HELP...
// I want to pass my ViewModel (emailDetails) to my View (EmailBodyRazorView) but instead of Rending that to the Response stream I want to capture the output and pass it to an email client.
string htmlEmailBody = View("EmailBodyRazorView", emailDetails).ToString();
// Once I have the htmlEmail body I'm good to go. I've got a utilityt that will send the email for me.
MyEmailUtility.SmtpSendEmail("[email protected]", "Email Subject", htmlEmailBody);
// Redirect another Action that will return a page to the user confirming the email was sent.
return RedirectToAction("ConfirmationEmailWasSent");
}
possibile duplicato di [come visualizzare un rasoio, ottenere l'html di una vista renderizzata all'interno di un'azione] (http://stackoverflow.com/questions/4692131/how-to-render-a-razor-view-get -the-html-of-a-render-view-inside-an-action) – marcind
@marcind sei corretto. Grazie. c'è un modo per me per contrassegnare questo come un duplicato? – Justin
ottima domanda! – toddmo