ActionResult でテキストデータをダウンロード
ASP.NET MVC で文字列データをファイルとしてダウンロードする方法です。
こちらで紹介されている方法はファイルのダウンロードではなく、ブラウザにデータが表示されてしまいます。これはこれで使い道があるのですが、ファイルとしてダウンロードしたい場合の方法が簡単に見つけられなかったのでメモ。
Controller.File メソッド (System.Web.Mvc)を使う
ブラウザに表示したい場合はContentメソッドを使います。
public ActionResult ContentCsv() { var text = "a,b,c" + "\r\n" + "d,e,f"; return Content(text, "text/csv"); }
ファイルとしてダウンロードしたい場合は以下のように File メソッドを使います。
stringは直接送れないので、エンコードを指定して byte配列 に変換する必要があります。
public ActionResult DownloadCsv() { var text = "a,b,c" + "\r\n" + "d,e,f"; var data = Encoding.UTF8.GetBytes(text); return File(data, "text/csv", "test.csv"); }