C# 尝试通过电子邮件发送ASP.NET页面的呈现内容时,ScriptManager出现问题
我最近在aspx页面中添加了一个电传控制。此页面有一个“发送电子邮件”按钮,单击该按钮将向用户发送页面的呈现输出。我添加的Telerik控件需要ScriptManager,因此我将其添加到ascx中。但是,现在电子邮件按钮不起作用。我得到以下错误: ID为“myIdHere”的控件需要页面上有ScriptManager。ScriptManager必须出现在任何需要它的控件之前 我知道脚本管理器存在,因为当我转到该url时,页面工作正常,只有当它尝试通过电子邮件发送呈现的输出时才会失败 下面是一段代码片段,您对scriptmanager在执行此类操作时是否存在问题有何看法C# 尝试通过电子邮件发送ASP.NET页面的呈现内容时,ScriptManager出现问题,c#,asp.net,telerik,C#,Asp.net,Telerik,我最近在aspx页面中添加了一个电传控制。此页面有一个“发送电子邮件”按钮,单击该按钮将向用户发送页面的呈现输出。我添加的Telerik控件需要ScriptManager,因此我将其添加到ascx中。但是,现在电子邮件按钮不起作用。我得到以下错误: ID为“myIdHere”的控件需要页面上有ScriptManager。ScriptManager必须出现在任何需要它的控件之前 我知道脚本管理器存在,因为当我转到该url时,页面工作正常,只有当它尝试通过电子邮件发送呈现的输出时才会失败 下面是一段
Page EmailPage = new EmailBasePage();
System.Web.UI.HtmlControls.HtmlForm EmailForm = new System.Web.UI.HtmlControls.HtmlForm();
EmailPage.Controls.Add(EmailForm);
EmailForm.Controls.Add(contentTable); //this is the container with all the controls I want to email
StringBuilder SB = new StringBuilder();
StringWriter html = new StringWriter(SB);
HtmlTextWriter mhtmlWriter = new HtmlTextWriter(html);
EmailPage.DesignerInitialize();
EmailPage.RenderControl(mhtmlWriter);
mhtmlWriter.Close();
更新
错误消息中引用的控件“myIdHere”是需要ScriptManager的Telerik RadComboBox控件。它是添加到EmailForm的contentTable控件的子控件。控件层次结构如下所示:
contentTable
|__UserControl1
|__ScriptManager1
|__UserControl2
|__Control "myIdHere", a Telerik RadComboBox requiring a ScriptManager
如果确定页面输出包含ASP.NET AJAX脚本(由ScriptManager控件呈现),则可以通过设置
myIdHere.RegisterWithScriptManager = false;
这将删除服务器上脚本管理器控件的组合框依赖项。请注意,该控件在浏览器中仍然需要ASP.NET AJAX客户端脚本,这就是为什么您首先需要确保页面上有ScriptManager。什么类型的控件是“myIdHere”?它是否在contentTable容器中?如果是,它前面的contentTable容器中是否有脚本管理器?