如何在ASP.NET视图引擎is known上生成给定部分视图的HTML。ASP.NET MVC Razor:如何在控制器动作中呈现Razor部分视图的HTML
但是,如果在剃刀局部视图上使用此功能,则它不起作用,例外情况是部分视图不会从“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();
}
你能告诉你有这么远,产生异常的代码? – mlibby 2010-12-03 12:48:00