У функции jQuery HTML Button возникают проблемы с MVC FileResult

Я намеревался, чтобы эта функция вызывала мой метод действия MVC, возвращающий отчет в формате CSV.

$(function() {
    $('#exportButton').click(function() {
        $.get('/curReport/GetCSVReport');
    });
});

Если я создам кнопку, подобную приведенному ниже коду, то при нажатии на нее появится окно «Открыть с помощью/Сохранить файл».

<input type="button" value="Export" onClick="location.href='CurReport/GetCSVReport'">

Однако, когда я меняю свою кнопку, чтобы использовать мою функцию jQuery, тогда, хотя GetCSVReport() вызывается, мне не предоставляется окно «Открыть с помощью/Сохранить файл».

Вот мой GetCSVReport()

public FileResult GetCSVReport()
{
    ...
    return fileResult;
}

Как я могу заставить свою функцию jQuery работать как onClick?

Спасибо,

Аарон


person Aaron Salazar    schedule 30.03.2010    source источник


Ответы (1)


Используйте тот же код, который вы использовали ранее:

$(function() {
    $('#exportButton').click(function() {
        location.href = 'CurReport/GetCSVReport';
    });
});

get запускает вызов Ajax, который вам здесь не нужен. Вы используете jQuery для привязки события, но действие остается прежним.

Чтобы добавить параметры строки запроса, используйте:

location.href = 'CurReport/GetCSVReport?filter=' + escape(val);
person Kobi    schedule 30.03.2010
comment
Как добавить значения к параметрам? Используя старый способ, я мог бы просто сделать это $.get('/curReport/GetCSVReport', {filter: val});. Спасибо! - person Aaron Salazar; 30.03.2010
comment
@ Аарон - обновил ответ. Если val имеет простое значение (например, число), вам не нужно экранировать его. - person Kobi; 30.03.2010