如何使用该页面的ViewState中的数据强制下载ASP.NET页面上的文件?我找到了一些例子表明:
Response.ClearContent();
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "attachment; filename=" + "example.aaa");
Response.Write( this.ViewState["stuffs"] );
Response.End();
但如果我这样做,当前页面将被删除并返回给用户空白。
其他示例说创建“download.aspx”并通过javascript请求它,但在这个新页面上,我将无法访问第一页的ViewState数据。
重点是,如何创建文件,启动下载并且不会丢失当前页面状态?
答案 0 :(得分:0)
经过多次测试后,我找到了解决方案。
如果我从示例代码中删除Response.ClearContent();
,它将完全按照我的需要运行:
答案 1 :(得分:-1)
我通常使用Crystal Reports并生成PDF文件来处理此问题。我使用提交的数据保存对该文件的引用,并在请求时提供它。您需要保护文件,以便随机URL黑客无法偶然发现它。