Я хотел бы использовать возможности привязки/рендеринга модели Razor View для генерации содержимого Body Body для электронной почты, которую я отправляю из своего приложения ASP.NET MVC.
Есть ли способ визуализировать представление для строки вместо того, чтобы возвращать ее как ActionResult из запроса GET?
Чтобы проиллюстрировать, я ищу что-то, что сделает следующее...
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");
}