Znany jest sposób generowania kodu HTML danego widoku częściowego w aparacie widoku ASP.NET .
Ale jeśli ta funkcja jest używana w widoku częściowym maszynki do golenia, nie działa, ponieważ wyjątek mówi, że widok częściowy nie pochodzi od „UserControl”.
Jak naprawić renderowanie, aby obsługiwać częściowy widok maszynki do golenia?
Potrzebuję tego, ponieważ generuję e-maile z tych częściowych widoków ...
AKTUALIZACJA:
Kod, który się nie udaje (@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();
}