2012-04-25 6 views
0

私はMVCに新しいですし、以下を行う方法を把握しよう:CSVに変換しますか?

基本的に、私がクリック/ UIから開くことはその結果を示したURL http://dev.test.com/api/data/abczyz12345、持っている:

"email","f_name","l_name","c_name","ids" "[email protected]","C G","Wander","C1","" "[email protected]","Virginia","Dale","A & D","" .... and so on.... 

私の見解では、上記のリンクをアンカーとして表示し、ユーザーがクリックすると、同じページで開かれます。 ユーザーがリンクをクリックしたときにWebページで開く代わりに、CSVファイルとして開く(ユーザーにダウンロードオプションを与える)方法がありますか?

+2

http://stackoverflow.com/questions/989927/recommended-way-to-create-an-actionresult-with-a-file-extension – Shyju

答えて

1

はい、HTTPヘッダーを使用しているファイルの種類を指定する必要があります。

header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename="filename.csv"'); 

echo '"email","f_name"... 

ブラウザは出力をCSVと認識し、それに応じてファイルダウンロードのプロンプトを表示します。

ASP.netでも同じことが起こりますが、どのように処理されているのか分かりません。

0

このデータを処理するにはいくつかの方法がありますが、私はこのデータのターゲットオーディエンス、環境、およびオーバーアーチングの目標については完全にはわかりません。

私は台所のシンクルート(ページ内のデータを使用して、それをファイルにエクスポートすることができるようにすることができます)と一緒に行きましょう:あなたはダウンロード用のファイルにデータをラップするためにjqueryのを使用することができます

このチュートリアルでは、サーバー側のPHPを使用していますが、私はあなたの要件を理解していれば、あなたはそれがクライアント側にいたら、そのデータを処理する必要があります。 資産/スクリプト:

http://tutorialzine.com/2011/05/generating-files-javascript-php/

セクションを参照してください。 JS

抜粋:

$(document).ready(function(){ 

    $('#download').click(function(e){ 

     $.generateFile({ 
      filename : 'export.txt', 
      content  : $('textarea').val(), 
      script  : 'download.php' 
     }); 

     e.preventDefault(); 
    }); 

    $('#downloadPage').click(function(e){ 

     $.generateFile({ 
      filename : 'page.html', 
      content  : $('html').html(), 
      script  : 'download.php' 
     }); 

     e.preventDefault(); 
    }); 

}); 

動的に広告を生成するためのちょっといい例書類。

1
public ActionResult Index() 
{ 
    Response.Clear(); 
    Response.Clear(); 
    Response.ContentType = "application/CSV"; 
    Response.AddHeader("content-disposition", "attachment; filename=\"filename.csv\""); 
    String temp = "email,f_name,l_name,c_name,ids,[email protected],CG,Wander,C1,[email protected],Virginia,Dale,A & D"; 
    Response.Write(temp); 
    Response.End(); 
    return View(); 
} 
+0

私は、コントローラのアクションに上記のコードを使用する必要がありますか?申し訳ありませんが、私はmvcの新機能です。 – dotNetNewbie

+0

はい、コントローラーが機能します。 Response.Writeはより良いものでなければなりません。私はもう少し私の応答を編集します。 – Mark

関連する問題