是否可以在Windows应用程序中使用LoadControl?
我将电子邮件生成为网络,但我想将其移至Windows服务部门,以便每月通讯。
电子邮件现在被实现为UserControls,这样html人就可以轻松修改外观&感觉。
当前的渲染实现如下:
StringBuilder sb = new StringBuilder(4000);
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
EmailTemplateBase emailCtrl = (EmailTemplateBase)page.LoadControl(
"Controls/EmailTempaltes/Template.ascx");
// Exception here
emailCtrl.DataContext = dataContext;
emailCtrl.Parameter = parameter;
emailCtrl.RenderMode = renderMode;
emailCtrl.DataBind();
emailCtrl.RenderControl(htw);
subject = emailCtrl.Subject;
string MessageText = sb.ToString().Replace("\t", "").Replace(Environment.NewLine, "");
return MessageText;
答案 0 :(得分:1)
我的解决方案是调用Web服务,该服务能够从.ascx生成Html。
你可以看到有问题的代码。
答案 1 :(得分:0)
而不是asp.net中使用的LoadControl
方法,您可以使用父控件的Controls.Add
方法。只需添加一个面板作为父级:
UserControl uc1 = new UserControl //this is your usercontrol
Panel1.Controls.Add(uc1);