Советы по использованию jquery ajax для возврата файла Excel - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть веб-страница с несколькими полями и кнопка GET EXCEL. В настоящее время, когда пользователь нажимает кнопку GET EXCEL, js-скрипт собирает данные из полей и создает URL-адрес для Action Controller:

в js:

$("excel-btn").onclick( function () {
//get selected parameters:
    p1 = $("#p1").val();
    p2 = $("#p2").val();
    p3 = $("#p3").val();

    window.location = "myController/getExcel?p1=" + p1 + "&p2=" + p2 + "&p3=" + p3;
});

В моем действии контроллера:

public ActionResult DownloadExcel(string p1, string p2, string p3)
{

            //go to the database and get the data, shove it into the file
            return File(ms, "application/ms-excel", "myfile.xls"); 
 }

Вопрос: Я хотел бы использовать jquery ajax для достижения того же результата, поскольку у меня больше гибкости и я могу передавать объекты в действие, а не добавлять необходимые параметры в строку запроса. Это возможно? Если так, что Ajax вернет в этом случае?

Я использую asp.net MVC3

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Может ли кнопка Excel просто заполнить поле формы переменными и затем отправить его без ajax?До тех пор, пока тип контента установлен на application / ms-excel, он будет предлагать пользователю открыть или сохранить файл (или как бы там ни было поведение браузера по умолчанию).

По сути, я так и решаю эту проблему и, похоже, работает нормально.

0 голосов
/ 14 февраля 2012

Вы не можете Ajax для этого.вы должны использовать iframe для создания ajax-файла типа download

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