我有一个主页/主菜单页面。表格有链接。如果您使用输入运行表单,您将获得 Excel 输出。如果您单击“打开”以在浏览器中打开该输出,则返回按钮会将您带到主菜单/主菜单。
这是可以理解的,因为如果表单页面是 X.aspx,那么输出 Excel 的 binaryWrite 并不会真正改变这一点。
问题是如果有回发,后退按钮会将您带到表单页面。这是不一致的。如果我运行页面或下拉菜单导致回发,我真的希望后退按钮将我带到表单字段,以便我可以再次运行 Excel 工作表。
我尝试过的事情。
我尝试添加位置标题。
e.ContentFileName = "ELTFile.Output.xls";
在响应之前。写...
private void SendFileToBrowser(DownloadFileEventArgs e)
{
if (!e.Cancel && e.FileObject != null)
{
this.Page.Response.Clear();
this.Page.Response.ClearContent();
this.Page.Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", e.ContentFileName));
this.Page.Response.AddHeader("Content-Length", e.FileObject.LongLength.ToString());
this.Page.Response.AddHeader("Location", e.ContentFileName);
this.Page.Response.ContentType = e.ContentType;
this.Page.Response.BinaryWrite(e.FileObject);
this.Page.Response.End();
}
}
我试过了
Response.Cache.SetCacheability(HttpCacheability.Public);
也
Response.Cache.SetCacheability(HttpCacheability.Server);
但基本上,取决于我是否在单击“提交”按钮生成 Excel 之前回帖,我会得到主菜单(不想要)或表单页面(想要)。我每次都想要表单页面。基本上我想告诉浏览器“我知道这并不是一个真正不同的页面,但请那样对待它,好吗?”