ASP.NET MVC:返回纯文本文件,从控制器的方法下载(ASP.NET MVC: returni

2019-08-18 04:20发布

考虑需要从控制器方法返回给调用者返回一个纯文本文件。 这个想法是有文件下载,而不是在浏览器中看到的明文。

我有以下的方法,它按预期工作。 该文件呈现给浏览器下载,文件将填充该字符串。

我想看看这个方法的“更正确”的执行情况,我不是100%舒适的void返回类型。

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();
}

Answer 1:

使用控制器上的类文件方法返回一个FileResult

public ActionResult ViewHL7( int id )
{
    ...

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


Answer 2:

你会想返回FileContentResult从你的方法。



文章来源: ASP.NET MVC: returning plaintext file to download from controller method