ASP.NET보기 엔진에서 지정된 부분보기의 HTML을 생성하는 방법 은 알려져 있습니다.
그러나이 기능이 면도기 부분보기에서 사용되면 부분보기가 "UserControl"에서 파생되지 않는다는 예외가 있기 때문에 작동하지 않습니다.
Razor 부분보기를 지원하도록 렌더링을 수정하는 방법은 무엇입니까?
이 부분보기에서 이메일을 생성하기 때문에 이것이 필요합니다 ...
최신 정보:
실패한 코드 (@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();
}