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