最佳答案
如何在 ASP.NET 视图引擎 已经知道了上生成给定部分视图的 HTML。
但是,如果这个功能是用于剃刀部分视图它不工作,作为例外说,部分视图不是来自“用户控制”。
如何修复渲染支持剃刀局部视图?
我需要这个,因为我生成电子邮件从这个部分视图..。
更新:
失败的代码(@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();
}