HtmlPage.Window.Navigate打开指定页面

迪迦凹凸曼 2012-05-28 11:07:25
我的xaml页面上有一个button,button的后台代码是

ServiceReference1.Service1Client sr = new ServiceReference1.Service1Client();
sr.HtmlToPdfAsync(fileName);
//以上2行代码是在服务器上生成一个PDF文件
var xapUri = Application.Current.Host.Source;
var webUri = new Uri(xapUri, "../");
string newurl = webUri + @"PdfFilePath/" + fileName;
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(newurl), "_blank");
//以上4行代码是获取生成的PDF路径并下载

要是按上面的写法把生成与下载写到一个button方法里面,就无法完成下载的功能
生成与下载分别写到2个button事件里就可以完成这2个功能
分析了一下是生成PDF文件后,我必须重新向服务器请求才可以下载,但是我又想通过一个按钮实现这2个功能
求各位大神帮忙指点
...全文
199 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
迪迦凹凸曼 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

可以启动计时器,一段时间后再去请求下载。
但如果请求下载时,服务器还没有把pdf生成完毕,你该怎么处理?
[/Quote]
pdf很小,我尝试过Thread.sleep(10000)10秒打开新的页面还是"无法找到资源"
但是我在新的页面地址栏中敲下回车就可以下载了
sundayX 2012-05-28
  • 打赏
  • 举报
回复
可以启动计时器,一段时间后再去请求下载。
但如果请求下载时,服务器还没有把pdf生成完毕,你该怎么处理?
sundayX 2012-05-28
  • 打赏
  • 举报
回复
哦,这还真没遇到过。但是像你这段代码直接访问已存在的文件时没有问题的,从服务端查查看呢。

var xapUri = Application.Current.Host.Source;
var webUri = new Uri(xapUri, "../");
string newurl = webUri + @"PdfFilePath/" + fileName;
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(newurl), "_blank");
//以上4行代码是获取生成的PDF路径并下载

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧