【发布时间】:2011-05-19 16:12:06
【问题描述】:
如何在 ASP.NET 视图引擎is known 上生成给定局部视图的 HTML。
但是,如果在 razor 局部视图上使用此功能,它就不起作用,因为异常表示局部视图不是从“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();
}
【问题讨论】:
-
你能展示你到目前为止产生异常的代码吗?
标签: c# asp.net-mvc razor