ASP.NET MVC:返回纯文本文件以从控制器方法下载

Posted

技术标签:

【中文标题】ASP.NET MVC:返回纯文本文件以从控制器方法下载【英文标题】:ASP.NET MVC: returning plaintext file to download from controller method 【发布时间】:2009-10-14 23:18:07 【问题描述】:

考虑需要将纯文本文件从控制器方法返回给调用者。这个想法是下载文件,而不是在浏览器中以纯文本形式查看。

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

我想寻找此方法的“更正确”实现,因为我对 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();

【问题讨论】:

【参考方案1】:

使用控制器类的 File 方法返回一个 FileResult

public ActionResult ViewHL7( int id )

    ...

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

【讨论】:

Tks tvanfosson。你的回答对我帮助很大。 如果 SO 可以拿起 .net 类,这样我们就可以看到重载而不用谷歌搜索,这不是很好吗:p【参考方案2】:

您需要从您的方法中返回一个FileContentResult

【讨论】:

以上是关于ASP.NET MVC:返回纯文本文件以从控制器方法下载的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net-mvc 中从服务器读取文本文件的最佳方法是啥

无法更改 ASP.NET MVC 3 中文本框的值

asp.net mvc 在视图和控制器之间传递参数

带有 Jquery 模态形式的 asp.net MVC

如何在 ASP.NET MVC 3 razor ViewStart 文件中指定不同的布局?

指向脚本标签的 src 属性以从 asp.net mvc 2 中的操作方法下载 js。