asp.net mvc 2渲染视图到字符串,而不是部分

时间:2010-07-01 13:25:00

标签: 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);

    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

1 个答案:

答案 0 :(得分:1)

查看MVCContrib的电子邮件模板系统以发送电子邮件。

http://codevanced.net/post/Sending-HTML-emails-with-ASPNET-MVC2-and-MVCContrib.aspx

更新

如果您不想包含Mvccontrib,

This question和/或this article可能会有所帮助。虽然我每天都使用Mvccontrib,但这是无害的。