如何在ASP .NET运行时之外呈现ASP .NET用户控件?

时间:2011-10-10 09:58:13

标签: asp.net

我正在使用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文件中加载控件就是问题。

1 个答案:

答案 0 :(得分:0)

您应该将控件从usercontrol更改为customcontrol。你可以在控件上使用render方法。