使用asp.net发送自定义html电子邮件的最简单方法是什么?
我想理想情况下我想通过电子邮件发送html而不是像往常一样通过ActionResult将其返回到浏览器.通过这种方式,我可以将电子邮件构建为视图,通过模型为其提供数据,然后使用标准.NET电子邮件内容将其激活.
这可行/这样做的方法?
谢谢,
解决方法
这个
blog post有一个很好的解决方案,可以将View渲染为字符串,以便您可以通过电子邮件发送它.
/// Static Method to render string - put somewhere of your choosing public static string RenderPartialToString(string controlName,object viewData) { ViewDataDictionary vd = new ViewDataDictionary(viewData); ViewPage vp = new ViewPage { ViewData = vd }; Control control = vp.LoadControl(controlName); vp.Controls.Add(control); StringBuilder sb = new StringBuilder(); using (StringWriter sw = new StringWriter(sb)) { using (HtmlTextWriter tw = new HtmlTextWriter(sw)) { vp.RenderControl(tw); } } return sb.ToString(); }