Как сгенерировать HTML-код данного частичного представления в ASP.NET-режиме просмотра известен.
Но если эта функция используется для частичного просмотра бритвы, она не работает, поскольку исключение говорит, что частичный вид не получается из "UserControl".
Как исправить рендеринг для поддержки частичного просмотра бритвы?
Мне нужно это, потому что я создаю электронные письма из этих частичных представлений...
UPDATE:
Неверный код (@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();
}