2013-06-28 1 views
3

나는 csv 파일을 반환하는 컨트롤러가 있습니다. 이 액션이 표시된 후 액션으로 리디렉션하고 싶습니다 (예 : 집보기로 돌아 가기). 컨트롤러 로직은 다음과 같습니다ASP.net MVC 파일 반환 및 리디렉션

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"); 
} 
+3

HTTP는이를 지원하지 않습니다. – SLaks

+0

안녕하세요,이 작업은 파일을 만드는 다른 컨트롤러에서 호출해야한다는 의미 여야합니다.보기에서 호출되지 않습니다. – Simon

+0

return RedirectToAction ("DownloadCSV", new {fileName = exportedCancelFile}); – Simon

답변

5

짧은 버전이 파일 다운로드를 강제 때문에 HTTP 제한 같은 조치를 리디렉션 할 수 있다는 것입니다. 그러나 window.open을 사용하여 파일 다운로드 작업을 열어 다운로드를 강제 실행할 수 있습니다.

예 : 나는 HTML5를 사용하는이 경우

<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> 

속성,하지만 당신은이 방법으로 그것을 할 국한되지 것입니다.