js发送post请求下载文件
构建Model:
getSearchModel: function () { //获取多选的站别的值 var selectedItemValues = controller.getTerminals(); var searchModel = { BEGIN_DATETIME: $('#BEGIN_DATETIME').val(), END_DATETIME: $('#END_DATETIME').val(), SWVERSION: $('#SWVERSION').val() }; return searchModel; },
以Post方式下载文件的javascript,原文链接:https://www.lmlphp.com/user/57768/article/item/869708/
/*===================下载文件 * options:{ * url:'', //下载地址 * data:{name:value}, //要发送的数据 * method:'post' * } */ downLoadFile: function (options) { var config = $.extend(true, { method: 'post' }, options); var $iframe = $('<iframe id="down-file-iframe" />'); var $form = $('<form target="down-file-iframe" method="' + config.method + '" />'); $form.attr('action', config.url); for (var key in config.data) { controller.appendFormData($form, key, config.data[key]); } $iframe.append($form); $(document.body).append($iframe); $form[0].submit(); $iframe.remove(); }, //递归添加数据到form中 appendFormData: function ($form, key, obj) { if (Array.isArray(obj)) { debugger; for (var i = 0; i < obj.length; i++) { controller.appendFormData($form, key + '[' + i+']' , obj[i]); } } else { $form.append('<input type="hidden" name="' + key + '" value="' + obj + '" />'); } }
为button添加事件
//导出 $("#btnExport").click(function (e) { var url = '@Url.Action("Export")'; var searchModel = controller.getSearchModel(); controller.downLoadFile({ url: url, //请求的url data: searchModel//要发送的数据 }); });
C# 使用CSVHelper导出数据
[HttpPost] [AllowAllSignInUser] public ActionResult Export(AlyTestVariabilityChartQueryFilter filter) { if (!ModelState.IsValid) { var msg = GetModelStateErrs(); return Result(null, ResultStatus.ModelUnValid, msg, GetModelStateErrList()); } try { filter.TERMINAL_NAMES = filter.TERMINAL_NAMES.Where(r => !string.IsNullOrWhiteSpace(r)).ToList(); var dt = _alyTestResultService.Export(filter); var fileName = $@"TestLog_{DateTime.Now:yyyyMMddHHmmss}.csv"; string fileFullName = $@"{GlobalConfig.UploadRootDirectory}\DownloadTemp\{fileName}"; string dir = Path.GetDirectoryName(fileFullName); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } using (var textWriter =System.IO.File.CreateText(fileFullName)) { using (CsvWriter csv = new CsvWriter(textWriter, System.Globalization.CultureInfo.CurrentCulture)) { // 写列名 foreach (DataColumn column in dt.Columns) csv.WriteField(Regex.Replace( column.ColumnName,@"_\d+$","")); csv.NextRecord(); //写行数据 foreach (DataRow row in dt.Rows) { for (var i = 0; i < dt.Columns.Count; i++) csv.WriteField(row[i]); csv.NextRecord(); } } } return File(fileFullName, "application/vnd.ms-excel", fileName); } catch (Exception ex) { Log(new List<object> { filter }, ex); return Result(null, ResultStatus.Error, ex.Message); } }
https://www.lmlphp.com/user/57768/article/item/869708/
浙公网安备 33010602011771号