在电子邮件中发送ASP.NET MVC动作结果时,可以使用以下方法:
可以使用Controller.ViewEngineCollection
将视图结果转换为字符串,然后将其作为电子邮件的正文发送。
public string RenderViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindView(ControllerContext, viewName, null);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
使用System.Net.Mail.MailMessage
创建电子邮件消息,并将视图结果作为正文添加。
var mailMessage = new MailMessage();
mailMessage.To.Add("recipient@example.com");
mailMessage.Subject = "Subject";
mailMessage.Body = RenderViewToString("ViewName", model);
mailMessage.IsBodyHtml = true;
使用System.Net.Mail.SmtpClient
发送电子邮件。
var smtpClient = new SmtpClient("smtp.example.com", 587);
smtpClient.Credentials = new NetworkCredential("username", "password");
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
注意:在实际应用中,请确保将适当的错误处理和验证添加到代码中。
领取专属 10元无门槛券
手把手带您无忧上云