単純なWebアプリケーションにServiceStackを使用しています。
このアプリでは、一部のコンテンツを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;
}
}
前もって感謝します