我正在使用ASP .NET用户控件生成HTML电子邮件,如下所示
private string GetHtml(object myData)
{
var page = new Page();
var control = page.LoadControl("~/path/to/myEmailControl.ascx");
page.Controls.Add(control);
control.DataBind(myData);
return RenderControlToHtml(control);
}
private string RenderControlToHtml(Control control)
{
var builder = new StringBuilder();
control.RenderControl(new HtmlTextWriter(new StringWriter(builder)));
return builder.ToString();
}
当我从Web项目中使用它时,这很好用,但最近我们在解决方案中添加了一个Windows应用程序,它也需要使用此代码。
有没有人对如何让代码在ASP .NET运行时之外工作有任何建议?一旦我有一个控件实例,我应该能够渲染它,但是从ascx文件中加载控件就是问题。
答案 0 :(得分:0)
您应该将控件从usercontrol更改为customcontrol。你可以在控件上使用render方法。