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?