asp.net скачать контроллер клиента с сервера mvc - PullRequest
0 голосов
/ 14 сентября 2018

Когда я использую @using (Ajax.BeginForm("Generate", "Report")) и нажимаю кнопку отправки, тогда байтовый файл открывается в конце моей страницы

Когда я использую Экспорт

<a href="@Url.Action("Generate")" class="btn btn-primary">Export2</a>

затем файл загружается и сохраняется в папке по умолчанию СКАЧАТЬ. Так в чем же разница между submit и href ???

public FileContentResult Generate()
        {
            byte[] resultee2 = new byte[12];
            return new FileContentResult(resultee2, "text/plain") { FileDownloadName = "myfile.txt" };
        }

А как я могу создать загружаемый файл в папку после отправки формы?

У меня есть форма с полями, затем я нажимаю кнопку отправки, и значения из полей отправляются на сервер, сервер генерирует байтовый массив, а затем сервер отвечает этим байтовым массивом, затем контроллер имеет этот байтовый массив, а затем я хочу преобразовать этот байтовый массив для текста и отправки клиенту в виде файла загрузки.

1 Ответ

0 голосов
/ 14 сентября 2018

Загрузка файла формы через AJAX не всегда работает как открытие файла по щелчку гиперссылки или после стандартного действия после публикации формы.В прошлом я определил действие:

public ActionResult Download(long id)
{
   //get record info
   return File(fileStream, "application/pdf");
}

В этом примере я работал с PDFS (обратите внимание, что браузер по умолчанию открывается в новой вкладке и не запрашивает прямую загрузку),И получите доступ к этому действию через javascript:

window.open("Download?id=" + id, "_blank");

Это вызовет вариант загрузки и вернет содержимое.Обратите внимание, что для этого необходимо использовать некоторый механизм сохранения, например, сохранить файл на диске или в базе данных или воссоздать файл из данных в базе данных.

У вас также есть больший контроль, если вы используете метод $ .ajax jQuery, потому чтоу вас больше контроля над запросом и ответом, и вы можете вернуть данные файла обратно через ответ на вызов AJAX ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...