asp.net-mvc – 从MVC Controller导出到CSV,View在页面上显示CSV
发布时间:2020-12-16 04:28:35 所属栏目:asp.Net 来源:网络整理
导读:我刚刚将我的MVC视图导出到Excel工作得很好,但是,因为我正在设置location.href,这会让我看到一个充满CSV数据的页面而不是用户点击EXPORT按钮之前的整齐网格结果. 我正在尝试考虑如何更改以下脚本来执行其操作,但只留下页面.我试着调用搜索再次返回服务器但是
我刚刚将我的MVC视图导出到Excel工作得很好,但是,因为我正在设置location.href,这会让我看到一个充满CSV数据的页面而不是用户点击EXPORT按钮之前的整齐网格结果.
我正在尝试考虑如何更改以下脚本来执行其操作,但只留下页面.我试着调用搜索再次返回服务器但是在运行时用户暂时看到网页上的CSV,这是不好的. 任何想法非常感谢,干杯 $(function() { $('#exportButton').click(function() { var url = $('#AbsolutePath').val() + 'Waste.mvc/Export'; var data = { searchText: $('#SearchTextBox').val().toString(),searchTextSite: $('#SearchTextBoxSite').val().toString(),StartDate: $('#StartDate').val(),EndDate: $('#EndDate').val() }; $('#ResultsList').load(url,data,function() { $('#LoadingGif').empty(); location.href = url + "?searchText=" + data.searchText + "&searchTextSite=" + data.searchTextSite + "&StartDate=" + data.StartDate + "&EndDate=" + data.EndDate; }); //Search(); this fixes because grid is displayed again after csv results }); }); 我的控制器代码: public FileStreamResult Export(string searchText,string searchTextSite,string StartDate,string EndDate) { var searchResults = getSearchResults(searchText,searchTextSite,StartDate,EndDate); HttpContext.Response.AddHeader("content-disposition","attachment; filename=Export.csv"); var sw = new StreamWriter(new MemoryStream()); sw.WriteLine(""Ref","Source","Collected""); foreach (var line in searchResults.ToList()) { sw.WriteLine(string.Format(""{0}","{1}","{2}"",line.WasteId,line.SourceWasteTypeId.ToDescription(),line.CollectedDate.ToShortDateString())); } sw.Flush(); sw.BaseStream.Seek(0,SeekOrigin.Begin); return new FileStreamResult(sw.BaseStream,"text/csv"); // return File(sw.BaseStream,"text/csv","report.csv"); Renders the same result } 解决方法
您可以让控制器操作将CSV文件作为附件返回(它将使用Content-Disposition:attachment; filename = report.csv HTTP标头):
public ActionResult GetCsv() { byte[] csvData = ... return File(csvData,"report.csv"); } 现在你可以放心地做一个window.location.href =’/ reports / getcsv’;并且将提示用户下载CSV报告,但它将保留在同一页面上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET MVC 3:主模板的ViewModel?
- asp.net core 运用 Redis 配置步骤
- asp.net – 编辑不适用于Html.DropDownList和@class属性
- asp.net-mvc – 如何防止“分阶段”Azure网站的“交换”导致
- asp.net – 获取连接到SignalR hub的客户端数量
- ASP.NET 4.0中的不同服务器和客户端缓存策略
- asp.net-mvc-3 – 模型绑定器和隐藏字段
- asp.net-mvc-3 – 实体框架4.1自动日期
- asp.net-mvc – ASP.NET MVC ViewModel方法 – 是“合法”吗
- asp.net-mvc – 如何将.NET Core 2 MVC Web应用程序编译为E