MVC4向后台传输数据(POST)
前端
const xhr = new XMLHttpRequest() const fileName = '小题分表.xls' xhr.open('post', '@Url.Action("ExportData")', true) xhr.responseType = 'blob' //xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8') let self = this; let data = { columns: self.columns, students: self.data, title: "小题分表" } var param = JSON.stringify(data); let ss = new FormData(); ss.append('data', param); xhr.send(ss) xhr.onload = function () { debugger const type = xhr.getResponseHeader('Content-Type') const blob = new Blob([this.response], { type: type }) if (typeof window.navigator.msSaveBlob !== 'undefined') { window.navigator.msSaveBlob(blob, fileName) } else { const URL = window.URL || window.webkitURL const objectUrl = URL.createObjectURL(blob) if (fileName) { var a = document.createElement('a') // safari doesn't support this yet if (typeof a.download === 'undefined') { window.location = objectUrl } else { a.href = objectUrl a.download = fileName document.body.appendChild(a) a.click() a.remove() } } else { window.location = objectUrl } } }
后端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | [AllowAction] [HttpPost] public FileResult ExportData( string data) { var dataString = data.ToString(); var paras = new { Title= "" , Columns = EmptyArr< string >(), Students = EmptyArr<Dictionary< string , string >>() }; paras = JsonConvert.DeserializeAnonymousType(dataString, paras); var dt = new DataTable(); foreach ( string item in paras.Columns) { dt.Columns.Add(item); } foreach (Dictionary< string , string > item in paras.Students) { var row = dt.NewRow(); foreach ( var key in item.Keys) { row[key] = item[key]; } dt.Rows.Add(row); } var stream = dt.SaveToMemoryStream(paras.Title); return File(stream, "application/ms-excel" , "成绩单.xls" ); } |
1 2 3 4 5 6 7 8 9 | public static T[] EmptyArr<T>() { return EmptyArray<T>.Value; } internal static class EmptyArray<T> { public static readonly T[] Value = new T[0]; } |
分类:
.net core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!