C# 更新面板+;window.open+;https

C# 更新面板+;window.open+;https,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在用c#和asp.net进行开发 我有一些带有更新面板的页面。在此更新面板中,有一个按钮可重定向到新窗口。这是通过在代码隐藏中使用scriptmanager调用window.open来完成的。在我不使用https之前,一切正常。如果我使用路由器的隧道连接到路由器,然后使用代理访问我的网页,则从更新面板中的按钮调用window.open打开一个新的注册卡,但出现错误:找不到页面。在url中,我可以看到路由器没有将代理+IP放在路径之前。如果我删除了更新面板,这种情况就不会发生。使用Firebu

我正在用c#和asp.net进行开发

我有一些带有更新面板的页面。在此更新面板中,有一个按钮可重定向到新窗口。这是通过在代码隐藏中使用scriptmanager调用window.open来完成的。在我不使用https之前,一切正常。如果我使用路由器的隧道连接到路由器,然后使用代理访问我的网页,则从更新面板中的按钮调用window.open打开一个新的注册卡,但出现错误:找不到页面。在url中,我可以看到路由器没有将代理+IP放在路径之前。如果我删除了更新面板,这种情况就不会发生。使用Firebug,我可以看到使用更新面板,我得到一篇帖子,在回复中,内容类型是text/plain。没有更新面板,就有一个GET,响应contentType为text/html。那么,在不删除更新面板的情况下,我可以做些什么来运行它呢

在我不在我的代理上使用https之前,这一切都很正常:

protected void btnPrint_Click(object sender, EventArgs e)
{
     url = "~/Gui/Report/ReportViewer.aspx?ReportName=CustomerReport";
     Page page = (Page)HttpContext.Current.Handler;

     if (page == null) {
         Redirect(url);
     }

     url = page.ResolveUrl(url);

     string script = @"window.open(""{0}"");";

     script = String.Format(script, url);
     ScriptManager.RegisterStartupScript(page,
         typeof(Page),
         "Redirect",
         script,
         true);
}

<asp:UpdatePanel ID="UpdatePanel" runat="server">
    <ContentTemplate>
         <dx:ASPxButton runat="server" ID="btnPrint"
               Text="print" OnClick="btnPrint_Click">
         </dx:ASPxButton>
    </ContentTemplate>
</asp:UpdatePanel>
protectedvoid btnPrint\u单击(对象发送方,事件参数e)
{
url=“~/Gui/Report/ReportViewer.aspx?ReportName=CustomerReport”;
Page Page=(Page)HttpContext.Current.Handler;
如果(第==null页){
重定向(url);
}
url=page.ResolveUrl(url);
字符串脚本=@“window.open(“{0}”);
script=String.Format(脚本、url);
ScriptManager.RegisterStartupScript(第页,
类型(第页),
“重定向”,
剧本
正确的);
}
明白了

如果我使用代理,脚本语言为javascript的信息将丢失(奇怪…?!)。 如果我通过添加属性“language='javascript'”自行构建脚本标记,那么一切都可以正常工作。 有人能告诉我为什么这些信息丢失了吗

新代码如下:

protected void btnPrint_Click(object sender, EventArgs e)
{
 url = "~/Gui/Report/ReportViewer.aspx?ReportName=CustomerReport";
 Page page = (Page)HttpContext.Current.Handler;

 url = page.ResolveUrl(url);

 string script = "window.open('" + url + "');";

 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append("<script language='javascript'>");
 sb.Append(script);
 sb.Append("</script>");

 ScriptManager.RegisterStartupScript(page,
     typeof(Page),
     "Redirect",
     script,
     false);
}
protectedvoid btnPrint\u单击(对象发送方,事件参数e)
{
url=“~/Gui/Report/ReportViewer.aspx?ReportName=CustomerReport”;
Page Page=(Page)HttpContext.Current.Handler;
url=page.ResolveUrl(url);
string script=“window.open(“+url+”);”;
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
某人加上(“”);
附加(脚本);
某人加上(“”);
ScriptManager.RegisterStartupScript(第页,
类型(第页),
“重定向”,
剧本
假);
}

那么您有代码或类似的东西吗?