Даже если бы вы смогли получить файл в javascript, что бы вы сделали с ним? Сохранить это на клиентском компьютере? Ты не можешь На самом деле не имеет смысла запрашивать действия контроллера, которые возвращают файлы, используя AJAX. Просто создайте стандартную ссылку и оставьте пользователю решать, что делать с загруженным файлом.
Все, что вам нужно, это установить правильные заголовки HTTP:
public ActionResult Download()
{
return File(@"c:\foo.pdf", "application/pdf", "foo.pdf");
}
А затем создайте ссылку для скачивания:
<%= Html.ActionLink("download file", "download") %>