我有这个功能:
public static string RenderViewToString(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();
}
我称之为:
string body = StringHelpers.RenderViewToString("~/Areas/Public/Views/Shared/RegistrationEmail.ascx", new RegistrationEmailViewModel { User = user });
它返回一个带有user-info的html表。
但是我想知道是否有一种方法可以编辑它,我可以将视图作为字符串返回吗?所以我可以添加母版页,所以设计出所有可能的邮件会更容易吗?
提前致谢 / M
答案 0 :(得分:1)
查看MVCContrib的电子邮件模板系统以发送电子邮件。
http://codevanced.net/post/Sending-HTML-emails-with-ASPNET-MVC2-and-MVCContrib.aspx
更新
如果您不想包含Mvccontrib,This question和/或this article可能会有所帮助。虽然我每天都使用Mvccontrib,但这是无害的。