ASP.net MVC返回文件和重定向

时间:2013-06-28 11:52:24

标签: asp.net-mvc asp.net-mvc-4

我有一个返回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");
}

1 个答案:

答案 0 :(得分:5)

简短版本是由于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属性,但你并不局限于这样做。