ファイルを生成してファイルを返すASP.NET Coreアプリケーションで、次のメソッドを使用しています。ASP.NET Core Appからクッキーを戻す方法
[HttpPost]
public ActionResult Export(string data)
{
if (string.IsNullOrEmpty(data)) return View();
const string contentType = "Application/msexcel";
var fileName = "Export On " + DateTime.Now.ToString("MM-dd-yyyy hh:mm") + ".xlsx";
var ms = ExportControllerService.Export(data, ref fileName, User.Identity.Name);
var file = File(ms, contentType, fileName);
var result = (ActionResult) file;
return ms != null ? result : View();
}
私がやりたいことは、このファイルでクッキーを返すことです。 ASP.NETの以前のバージョンでは、私は私が生成されますのActionResultを取り、クッキーを設定するための応答性をいじってる次
var result = workbook.SaveAsActionResult(string.Format("export-{0}.xlsx", DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss")), HttpContext.ApplicationInstance.Response,
ExcelDownloadType.PromptDialog, ExcelHttpContentType.Excel2010);
result.Response.SetCookie(new HttpCookie(ExportHelpers.DownloadCookieName, "true") { Path = "/" });
お知らせのような何かをしました。
私が行っていることを完全にバックグラウンドで伝えるには、このエクスポートメソッドが呼び出されたときに、このメソッドを呼び出した隠れたIFrameをポストバックし、クライアントにファイルのオープン/ダウンロードを表示し、画面はそのままにします。私がこのクッキーを持っている理由は、エクスポート中に画面上にステータスバーを表示していて、ファイルの生成が完了してクライアント上で開く準備ができていることを知る必要があるからです。ステータスバー。
ファイルのダウンロードですので、フロントエンドには何もありません。テキストボックスとそれを送信するボタンがある単なるIFrameです。ファイルのコンテンツタイプが戻ってくると、UIにトリガするものは何もありません。 –
これは、あなたが探している機能であると思われるため、これにajax投稿を使用できない理由はありますか? – Rosemary
私はそれを次のように使いました:HttpContext.Response.Cookies.Append( "CranalyticsExportStatus"、 "ExportComplete"); –