【问题标题】:asp.net make button show different view of MultiView AND download a fileasp.net make 按钮显示 MultiView 的不同视图并下载文件
【发布时间】:2010-10-29 12:30:34
【问题描述】:

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

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

我在按钮单击事件处理程序中尝试了通常的Response.Redirect("~/DownloadHandler.ashx");,但显然这会阻止页面完成回发并显示 MultiView 的最后一页。

有没有办法解决这个问题,还是我应该改变我的 UI 来适应这个?

编辑: 我的结论是,最好只提供文档的超链接(在我的确认页面上,并相应地更改措辞),因为这样可以提供一致的用户体验,而与他们使用的浏览器无关。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    继续,将他们带到 MultiView 的第二个视图。添加一个 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?

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多