Я вызываю действие загрузки файла из javascript:
$elem.click(function() {
window.location.href = 'MyController/MyFileDownloadAction';
});
Контроллер возвращает файл:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyFileDownloadAction()
{
/* do some processing, generate an in-memory file... */
return File(myFileStream, "text/plain", myFileName);
}
Это действие имеет довольно высокую вероятность создания исключения (или, по крайней мере, невозможности вернуть файл).
Из-за характера приложения (которое содержит много динамического содержимого), я не могу действительно перенаправить на страницу с ошибкой в этой ситуации. Текущая страница должна как-то оставаться открытой.
Так что в идеале я ищу что-то вроде всплывающего окна javascript, но на самом деле это невозможно, так как я не знаю способа вернуть инструкцию javacript в вызове контроллера без ajaxed. Если я отображаю страницу ошибки, мне нужно как-то заставить ее открыться в новом окне. Есть ли возможное решение этой проблемы?