我只在我的Silverlight应用程序中使用IE时遇到问题。由于Silverlight2不包含文件下载机制,我只能靠自己的设备来想出一个解决方案。我这样做的方法如下:
HtmlPage.Window.Navigate(新Uri(sb.ToString(),UriKind.Relative));
我的StringBuilder包含服务器上的*.ashx处理程序的相对url和查询字符串,该处理程序读取查询字符串,从数据库获取一些数据,然后返回一个Excel文件。
当我这样做的时候,我得到一个阻止的文件下载条在IE中。据我所知,这是IE的一个新的安全“功能”,它被屏蔽是因为它认为下载不是由用户与网页的交互触发的。用户可以选择允许下载,并且该设置似乎会在会话的其余部分中被记住。但是,下一次他们打开页面时,这种情况又会发生。即使该站点在受信任区域中并且即使弹出窗口拦截器被配置为允许该站点的弹出窗口。
有人知道如何让IE知道用户确实请求了这个文件吗?
发布于 2009-04-01 15:34:04
在我的例子中只发生在第一次(使用IE7),也许这发生在你的本地开发实例上?
我认为你能做的并不多,甚至连MSDN页面都会告诉你“一条消息会出现在……上面”,这些事情可以缓解这一点:
HTH Braulio
发布于 2009-06-22 08:13:56
我也有同样的问题。对我来说,解决方案是不使用HtmlPage.Window.Navigate,而是使用HyperlinkButton并动态设置NavigateUri属性。
上面建议的保存和恢复应用程序状态不起作用。是的,它确实起到了作用,但它不可能确定什么时候需要做,什么时候不做,所以,最终,它并没有真正起作用。
在codeplex上查看此讨论...
http://slideshow2.codeplex.com/Thread/View.aspx?ThreadId=60242
发布于 2011-03-10 22:35:29
尝试使用HtmlPage.PopupWindow而不是HtmlPage.Window.Navigate。这帮助我绕过了IE的“自动提示文件下载”设置,默认情况下Internet区域站点禁用该设置。
https://stackoverflow.com/questions/705974
复制相似问题