Возврат табличных данных в виде файла с jquery и c # mvc - PullRequest
2 голосов
/ 27 января 2011

Я хотел бы использовать jquery для отправки Табличных данных на сервер, а затем получить файл data.csv для загрузки

, если я перейду к URL в моем браузере следующим образом: http://localhost:49400/File/Csv/?Text=qweerty&Filename=asdf Мне предлагают файл для загрузки.

Это действие, которое я называю:

    public FileResult Csv(FileModel fileModel)
    {
        return File(Encoding.UTF8.GetBytes(fileModel.Text), "text/plain", string.Concat(fileModel.Filename, ".csv"));
    }

, и мой javascript выглядит так:

    $("table").click(function () {
        $.ajax({
            type: "POST",
            url: "http://localhost:49400/File/Csv/",
            data: {"Text": "qwerty", "Filename": "asdf"}
        })
    });

Ответв Firebug содержит данные, но я хотел бы спросить пользователя, хочет ли он его скачать, это возможно?

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Нельзя использовать AJAX для загрузки файла.

Вместо этого вы можете просто установить location на URL, указывающий на файл.
Пока сервер возвращает загружаемый файл (сContent-Disposition header), браузер отобразит диалоговое окно «Сохранить» и не заменит страницу.

Если вы хотите загрузить файл из POST, вы можете создать скрытый <form>, который отправляет POST,затем submit() форма с использованием Javascript.

0 голосов
/ 27 января 2011

вы не можете доставлять содержимое файла с помощью ajax-вызова, возможно, вы найдете способ создать URL с вашими данными таблицы в виде строки запроса и потоковой передачи файла таким образом или отправить обратно всю страницу и ответить как поток

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