【发布时间】:2012-08-17 01:35:48
【问题描述】:
我将Service Stack 用于一个简单的网络应用程序。
在这个应用程序中,我需要将一些内容“导出”到 Excel。所以这是我采用的方法:
- 我用 jQuery 获取表格的 HTML 内容 a 获取 HTML 内容 表,然后发送到服务。
- 服务将内容写入文件(使用一些 CSS)
- 使用相同的服务,但使用
GET方法,我读取了文件并 使用ContentType:"application/vnd.ms-excel"进行下载
我在其他时候使用这种方法而不使用服务堆栈,并且效果很好。XLS 文件具有正确的内容和一些颜色。
现在,当我使用GET 方法(即用浏览器访问url)获取文件时,文件内容是错误的。
ServiceStack 允许下载一些格式:html、csv、jsv、json、xml。
html格式显示一个默认的报告页面,唯一有点作用的格式是jsv。
我的问题是:我怎样才能像普通的 html 文件一样下载文件?
一些代码:
public class ExcelService : RestServiceBase<Excel>
{
public override object OnGet (Excel request)
{
string file = request.nombre;
//Response.Clear();
HttpResult res = new HttpResult();
res.Headers[HttpHeaders.ContentType] = "application/vnd.ms-excel";
res.Headers[HttpHeaders.ContentDisposition] = "attachment; filename="+file+".xls";
string archivo = System.IO.File.ReadAllText("tmp/"+file+".html");
res.Response = archivo;
return res;
}
}
提前致谢
【问题讨论】:
标签: c# servicestack