2010-07-01 1 views
0
partielle

J'ai cette fonction:asp.net mvc 2 vue à rendre la chaîne, au lieu de

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(); 

}

Et je l'appelle comme ceci:

string body = StringHelpers.RenderViewToString("~/Areas/Public/Views/Shared/RegistrationEmail.ascx", new RegistrationEmailViewModel { User = user }); 

Et il retourne une table html avec l'info-utilisateur.

Mais je me demandais s'il y avait un moyen de modifier cela pour que je puisse retourner une vue sous forme de chaîne? donc je peux ajouter une page master, donc ça sera plus facile de concevoir tous les mails potentiels?

Merci à l'avance /M

Répondre

Questions connexes