web-dev-qa-db-ja.com

ASP.NET MVC:プレーンテキストファイルをコントローラーメソッドからダウンロードするために返す

コントローラーメソッドから呼び出し側にプレーンテキストファイルを返す必要があることを考慮してください。アイデアは、ブラウザでプレーンテキストとして表示するのではなく、ファイルをダウンロードすることです。

私は次の方法を持っていますが、期待通りに機能します。ファイルはダウンロードのためにブラウザに表示され、ファイルに文字列が入力されます。

void戻り値の型に100%慣れていないので、このメソッドの「より正しい」実装を探したいと思います。

public void ViewHL7(int id)
{
    string someLongTextForDownload = "ABC123";

    Response.Clear(); 
    Response.ContentType = "text/plain";
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.hl7", id.ToString()));
    Response.Write(someLongTextForDownload);
    Response.End();
}
59
p.campbell

コントローラークラスのFileメソッドを使用してFileResultを返す

public ActionResult ViewHL7( int id )
{
    ...

    return File( Encoding.UTF8.GetBytes( someLongTextForDownLoad ),
                 "text/plain",
                  string.Format( "{0}.hl7", id ) );
}
130
tvanfosson

メソッドからFileContentResultを返します。

6
Chris Missal