Es ist bekannt, wie ein HTML-Code einer bestimmten Teilansicht in der ASP.NET-Ansichts-Engine generiert wird .
Wenn diese Funktion jedoch in der Rasiermesser-Teilansicht verwendet wird, funktioniert sie nicht, da die Ausnahme besagt, dass die Teilansicht nicht von "UserControl" abgeleitet ist.
Wie kann ich das Rendering korrigieren, um die Rasiermesser-Teilansicht zu unterstützen?
Ich brauche das, weil ich E-Mails aus diesen Teilansichten generiere ...
AKTUALISIEREN:
Code, der fehlschlägt (@mcl):
public string RenderPartialToString(string controlName, object viewData)
{
ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };
viewPage.Url = this.GetUrlHelper();
string fullControlName = "~/Views/Email/" + controlName + ".ascx";
viewPage.ViewData = new ViewDataDictionary(viewData);
viewPage.Controls.Add(viewPage.LoadControl(fullControlName));
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter tw = new HtmlTextWriter(sw))
{
viewPage.RenderControl(tw);
}
}
return sb.ToString();
}