【发布时间】:2011-10-11 18:10:19
【问题描述】:
我正在使用 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 文件加载控件。
【问题讨论】:
-
行 page.LoadControl("~/path/to/myEmailControl.ascx") 将不起作用,因为没有 Web 路径。如果用新的 EmailControl 交换它会怎样?并将控件重写为自定义控件。
标签: asp.net