Итак, у меня проблема с тем, что файл cookie не устанавливается после возврата файла, происходящего только в IE.
Логика следующая:
- При первом посещении страницы им возвращается вид
- Пользователь отправляет форму и документ генерируется
2.а Если генерация файла успешна: он возвращает файл для загрузки пользователем.
2.b. Если генерация файла не удалась: он возвращает сообщение об ошибке.
В обоих случаях 2 : на странице должно отображаться сообщение из-за установленного файла cookie - однако оно показывает сообщение только при сбое файла, а не при возврате файла для загрузки.
Мой код выглядит примерно так:
public ActionResult MyAction(string parm) {
if (parm != null) {
// generate file and message
byte[] generatedFile = GenerateCsvFile(parm, out bool success, out string message);
// Set cookie with message saying it failed or succeeded
Response.Cookies.Add(new HttpCookie("downloadedFile", message) {
Expires = DateTime.Now.AddSeconds(60)
});
if (success) { // return file for user to download
return File(generatedFile, "text/csv", "MyDocument.csv");
}
return new HttpStatusCodeResult(204); // do nothing because it failed
}
// Initial view load
return View();
}
Что здесь происходит и как мне это исправить?