我有一个包含母版页的网页表单,该母版页使用更新面板。
问题是,每当我尝试下载文件时,都会收到此错误:
无法评估表达式,因为代码已优化或本机框位于调用堆栈之上
这是代码
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("Content-Disposition",
string.Format("filename=Relatorio.{0}", "xlsx"));
Response.ContentType = "application/vnd.ms-excel";
Response.BinaryWrite(File_Converted_toBytes);
Response.Flush();
Response.End();
如果我创建一个新项目,例如,一个web形成一个,只创建一个空白页面,里面有一个带有此代码的按钮,一切运行良好。
有人有什么想法吗?
答案 0 :(得分:1)
启动下载的按钮必须触发完整的回发。在UpdatePanel中,除非你做这样的事情,否则它是不可能的:
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="YourControlID" />
</Triggers>
<ContentTemplate>
.....
</ContentTemplate>
答案 1 :(得分:0)
您是否尝试在&#34;我的页面&#34;内部访问您的更新面板像这样?
UpdatePanel up = (UpdatePanel)Master.FindControl("updadepanelID");
答案 2 :(得分:0)
解决方案由Cooleshwar评论
ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(
this.YourControlID)