2010-07-01 61 views
0

我有这样的功能: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 }); 

,并返回与用户信息的HTML表。

但我想知道是否有办法编辑这个我可以返回视图为字符串?所以我可以添加masterpage,所以设计所有潜在的邮件会更容易?

在此先感谢 /M

回答