博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用MVC Razor生成格式良好的HTML Body作为邮件内容
阅读量:6889 次
发布时间:2019-06-27

本文共 1719 字,大约阅读时间需要 5 分钟。

PS: 实例化邮件类MailMessage有一个属性IsBodyHtml指示邮件正文是否是HTML格式。

 

我想利用Razor View的Model Binding / Rendering功能为我从ASP.NET MVC应用程序发送的电子邮件生成HTML Body Content。

有没有办法将视图呈现给字符串,而不是将其作为GET请求的ActionResult返回?

为了说明我正在寻找可以做以下事情的东西......

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("stevejobs@apple.com", "Email Subject", htmlEmailBody);        // Redirect another Action that will return a page to the user confirming the email was sent.        return RedirectToAction("ConfirmationEmailWasSent");    }

如果只需要将视图呈现为字符串,请尝试如下所示:

public string ToHtml(string viewToRender, ViewDataDictionary viewData, ControllerContext controllerContext){    var result = ViewEngines.Engines.FindView(controllerContext, viewToRender, null);    StringWriter output;    using (output = new StringWriter())    {        var viewContext = new ViewContext(controllerContext, result.View, viewData, controllerContext.Controller.TempData, output);        result.View.Render(viewContext, output);        result.ViewEngine.ReleaseView(controllerContext, result.View);    }    return output.ToString();}

需要传入视图的名称以及控制器操作中的ViewData和ControllerContext。

 

可以使用视图发送电子邮件:

 

参考地址:

转载于:https://www.cnblogs.com/riddly/p/8610183.html

你可能感兴趣的文章
表格模板
查看>>
git reset
查看>>
我的友情链接
查看>>
linux内核和发行版本介绍
查看>>
Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)
查看>>
salt 安装脚本
查看>>
获取Spring容器中的Bean
查看>>
ORA-01210: data file header is media corrupt
查看>>
Aerospike开发指南【中文】
查看>>
Python批量修改一个目录文件名
查看>>
rhel6.3 ntp服务器搭建过程
查看>>
Java数组的创建和初始化
查看>>
mysql相关知识点整理
查看>>
文档类型定义
查看>>
PHP POST接收处理 IOS上传NSData图片数据,上传图片到服务器
查看>>
代码块,静态代码块,构造代码块执行顺序
查看>>
账号管理之配置文件篇
查看>>
Windows2008 R2修改3389端口教程
查看>>
SW2014中文版本出现中文语言丢失时可以安装2011的包修复
查看>>
SOAP接口
查看>>