1
我生成使用ASP .NET用戶控件的HTML電子郵件,內容如下如何在ASP .NET運行時之外呈現ASP .NET用戶控件?
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交換它會怎麼樣?並重寫以控制自定義控件。 – Peter