0

コード:

@model System.Data.DataTable

<button type="submit" class="btn btn-primary"  data-dismiss="modal" aria-hidden="true"> Download</button>



[HttpPost]
public void getCSV(DataTable dt)
{
   MemoryStream stream = Export.GetCSV(dt);

   var filename = "ExampleCSV.csv";
   var contenttype = "text/csv";
   Response.Clear();
   Response.ContentType = contenttype;
   Response.AddHeader("content-disposition", "attachment;filename=" + filename);
   Response.Cache.SetCacheability(HttpCacheability.NoCache);
   Response.BinaryWrite(stream.ToArray());
   Response.End();
}

ボタンがクリックされたときに、ユーザーが CSV ファイルをエクスポートできるようにしたいと考えています。データテーブルをメソッド getCSV に渡す必要があります。誰か助けてください。ありがとう

Tempdataを使用してデータテーブルを保存し、コントローラーでアクセスすることは気にしません

4

1 に答える 1

0

FileStreamResultが必要です

何かのようなもの:

[HttpPost]
public FileStreamResult GetCSV(someType param)
{
   var dt = MyGetDt(param);
   MemoryStream stream = Export.GetCSV(dt);

   var filename = "ExampleCSV.csv";
   var contenttype = "text/csv";
   return new FileStreamResult(stream, contenttype)
   {FileDownloadName = filename};
}

お役に立てれば!

于 2013-11-06T15:52:01.960 に答える