Я пытаюсь сделать что-то вроде плагина, найденного здесь:
http://www.filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/ делает. Первоначально я просто собирался использовать это, но у меня было много проблем с датами. Так что я подумал, что попробую немного его изменить ...
вот моя версия плагина:
jQuery.download = function (url, data, method) {
if (url && typeof data == 'object') {
//for this version, data needs to be a json object.
//loop through the data object..
var theForm = $('<form></form>').attr('action', url).attr('method', method).attr('id', 'jqueryDownloadForm');
$.each(data, function (propertyName, propertyVal) {
theForm.append($("<input />").attr('type', 'hidden').attr('id', propertyName).val(propertyVal));
});
theForm.appendTo('body').trigger('submit').remove();
}
else {
//they didn't fill in the params. do nothing
}
};
и вот как это называется:
var dataToPost = { reportFormatId: reportFormatId, reportPageSizeId: reportPageSizeId, reportSortOrderId: reportSortOrderId, rangeStart: rangeStart, rangeEnd: rangeEnd};
$.download('/The/Url/', dataToPost, "POST");
Создает форму и отправляет. но он не отправляет никаких входных данных.
если я перебираю theForm.find ('input'), все они имеют значения. но, глядя на сообщение с Fiddler, там ничего не опубликовано. и мой контроллер MVC дает мне ошибки нулевого параметра.
Заранее спасибо за помощь!
EDIT:
Я попытался добавить кнопку в форму. вот так:
theForm.append($("<input />").attr('type', 'submit').attr('id', "ExportForm").val("Export"));
и не отправлять из JavaScript. Если я нажму кнопку, данные также не будут отправлены.