我有一个返回csv文件的控制器.我希望在显示此操作后重定向到某个操作,即返回到主视图.
控制器逻辑如下所示:
控制器逻辑如下所示:
public ActionResult DownloadCSV(string fileName) { string csv; using (StreamReader sr = new StreamReader(fileName)) { csv = sr.ReadToEnd(); } return File(new System.Text.UTF8Encoding().GetBytes(csv),"text/csv","Export.csv"); }
解决方法
简短版本是由于HTTP限制,您无法强制执行文件下载和重定向.但您可以使用window.open打开文件下载操作来强制下载.
例:
<a href="Action/RedirectPage" data-file="Action/DownloadCVS" class="file-download">Download File</a> <script> $(function() { $('a.file-download').click(function() { window.open($(this).data('file')); }); }); </script>
在这种情况下,我使用HTML5属性,但您不限于以这种方式执行.