我将Service Stack用于一个简单的 Web 应用程序。
在这个应用程序中,我需要将一些内容“导出”到 Excel。所以这是我采用的方法:
- 我使用 jQuery 获取表格的 HTML 内容,然后获取表格的 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;
}
}
提前致谢