Asp.net mvc 2 asp.net mvc 2将视图渲染为字符串,而不是部分
我有这个功能:Asp.net mvc 2 asp.net mvc 2将视图渲染为字符串,而不是部分,asp.net-mvc-2,Asp.net Mvc 2,我有这个功能: public static string RenderViewToString(string controlName, object viewData) { ViewDataDictionary vd = new ViewDataDictionary(viewData); ViewPage vp = new ViewPage { ViewData = vd }; Control control = vp.LoadControl(controlName);
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 });
它返回一个包含用户信息的html表
但我想知道是否有一种方法可以编辑它,以便我可以将视图作为字符串返回?所以我可以添加母版页,这样设计所有可能发出的邮件就更容易了
提前谢谢
/M查看MVCContrib用于发送电子邮件的电子邮件模板系统 更新:
和/或如果不想包含Mvccontrib,可能会有所帮助。尽管我每天都使用Mvccontrib,但它是无害的。有没有简单的方法来修改我的代码而不是添加Mvccontrib?什么,renderview?