代码之家  ›  专栏  ›  技术社区  ›  Matthew Dresser

ASP.NET Make按钮显示多视图的不同视图并下载文件

  •  0
  • Matthew Dresser  · 技术社区  · 16 年前

    我的网站上有一个页面,用户在下载文档之前必须填写详细信息。用户详细信息部分位于多视图控件的第一个视图上。

    在填写完他们的详细信息后,我希望用户单击一个按钮,该按钮将向他们显示一个文件下载提示(我已经用ashx处理程序成功完成了此操作)。 然后 将它们重定向到多视图的第二个视图页面,该页面将显示“感谢下载”或类似的内容。

    我已经试过了 Response.Redirect("~/DownloadHandler.ashx"); 在button click事件处理程序中,但显然这会阻止页面完成回发并显示多视图的最后一页。

    有没有办法解决这个问题,或者我应该更改我的用户界面来适应这个问题?

    编辑: 我得出的结论是,最好只提供到文档的超链接(在我的确认页上,并相应地更改措辞),因为这样就提供了独立于他们使用的浏览器的一致用户体验。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community CDub    8 年前

    继续,把它们带到多视图的第二个视图。添加一个将下载文档的javascript方法,并从代码隐藏中触发它。1例如,

    在你的页面中:

    <script>
    function downloadFile(url) {
     window.location = url;
     //you could also try window.open(url, 'Download')
    }
    </script>
    

    在您的代码背后:

    script = string.Format("downloadFile('{0}');", "DownloadHandler.ashx");
    Page.ClientScriptManager.RegisterStartupScript(typeof(Page), "download", script, true);
    

    您还可以在下载文件之前添加延迟(使用setTimeout)。

    更多信息: Initiating a file download that works well, even in IE?