Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 如何将服务调用的结果作为文件返回?_Silverlight_Wcf Ria Services - Fatal编程技术网

Silverlight 如何将服务调用的结果作为文件返回?

Silverlight 如何将服务调用的结果作为文件返回?,silverlight,wcf-ria-services,Silverlight,Wcf Ria Services,我有一个Silverlight应用程序,它获取联系人列表并将其显示在数据网格中。该应用程序还需要支持将联系人导出到Excel,并将联系人打印为HTML页面 我正在使用WCF RIA服务在Silverlight客户端上构造大部分查询,然后服务器也向查询中添加一些额外的where子句 我试图找出是否有一种方法可以使用ASP.Net页面运行查询结果,该页面将对查询结果进行格式化,并提示用户下载结果或打印结果 我想到的唯一办法是在服务器端将IQueryable对象保存为变量,然后将密钥返回到Silver

我有一个Silverlight应用程序,它获取联系人列表并将其显示在数据网格中。该应用程序还需要支持将联系人导出到Excel,并将联系人打印为HTML页面

我正在使用WCF RIA服务在Silverlight客户端上构造大部分查询,然后服务器也向查询中添加一些额外的where子句

我试图找出是否有一种方法可以使用ASP.Net页面运行查询结果,该页面将对查询结果进行格式化,并提示用户下载结果或打印结果

我想到的唯一办法是在服务器端将IQueryable对象保存为变量,然后将密钥返回到Silverlight页面。然后将密钥传递给Export.aspx或Print.aspx,这将获取查询结果并返回它们

还有更好的主意吗


看来一定有更好的方法,我只是没有想到。

不幸的是,没有更好的方法,至少是我所知道的。我们也一直在为silverlight中的Excel导出研究这个问题。我们尝试使用url打开一个新的浏览器窗口,但您无法添加任何标题或放置数据,这正是我们所需要的。因此,除非您可以在URL中完全编码查询,否则这种方法将不起作用

我们将要实现的方法是将导出的结果保存在存储器中,并返回该结果的密钥,正如您在问题中提到的


另一方面,它允许一些不错的特性,比如允许向资源发送链接。这当然会带来权限等方面的麻烦。

我已经成功地在客户端使用生成了Excel文件。然后就是用保存文件对话框提示用户。对于数据网格,您可以一般地这样做。输出HTML并不难。

因此,经过大量的工作和研究,我终于能够做到这一点。为了使其正常工作,我必须在Silverlight端通过反编译使用一些WCF RIA服务内部类来生成适当的查询字符串以传递到ASP.Net页面。然后在服务器端,我必须反编译更多的类来解析查询字符串,并将其转换为有效的Linq查询。现在一切正常了,我可以在代码隐藏中运行查询,并将结果作为文件输出

如果有人感兴趣,让我知道,我可以尝试分享血淋淋的细节。谢谢