创建文本文件并下载而不保存在ASP.net Core MVC 2.1中的服务器上 - c#

我找到了一种创建文本文件,然后立即在浏览器中下载而不将其写入常规ASP.net中的服务器的方法:

Create text file and download

接受的答案使用:

using (StreamWriter writer = new StreamWriter(Response.OutputStream, Encoding.UTF8)) {
  writer.Write("This is the content");
}

我需要在ASP.net Core 2.1 MVC中执行此操作-尽管该操作不知道什么是Response.OutputStream-并且我在Google上找不到任何可以帮助您完成此操作的方法或其他方法。

我怎样才能做到这一点?谢谢。

参考方案

如果您只处理文本,则根本不需要做任何特殊的事情。只需返回一个ContentResult

return Content("This is some text.", "text/plain");

这对于其他“文本”内容类型(例如CSV)也是如此:

return Content("foo,bar,baz", "text/csv");

如果您试图强制下载,则可以使用FileResult并简单地传递byte[]

return File(Encoding.UTF8.GetBytes(text), "text/plain", "foo.txt");

filename参数会提示Content-Disposition: attachment; filename="foo.txt"标头。另外,您可以返回Content并手动设置此标头:

Response.Headers.Add("Content-Disposition", "attachment; filename=\"foo.txt\"");
return Content(text, "text/plain");

最后,如果要在流中构建文本,则只需返回FileStreamResult

return File(stream, "text/plain", "foo.txt");

ASP.NET MVC 5自定义登录,无需脚手架,数据库优先 - c#

我对asp.net和mvc还是很陌生,所以我正在努力学习尽可能多的知识...为此,我从头开始编写博客网站,但是我对身份验证和授权有些困惑。由于我倾向于不真正使用任何脚手架的东西,所以我首先要使用数据库,所以不希望asp.net身份为我创建表。我对散列和加盐密码很酷,并对照数据库检查用户,我遇到的麻烦是将用户设置为登录状态并检查他们应该能够访问什么。我真的很想…

ASP.NET Core-在Singleton注入上存储库依赖项注入失败 - c#

我正在使用SoapCore为我的ASP.NET Core MVC应用程序创建Web服务。我正在使用Entity Framework Core和简单的存储库模式来获取我的数据库数据。我通过Startup.cs中的.AddSingleton()注入存储库类:services.AddSingleton<IImportRepository, ImportRep…

ASP.NET MVC ExecuteResult与ActionResult - c#

我见过它用来向响应添加标头,然后返回文件进行流传输。public override void ExecuteResult(ControllerContext context) { ... response.AddHeader("Accept-Ranges", "bytes"); response.AddHeader(&…

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

ASP.NET Core 2.0中的多个身份 - c#

我正在将ASP.NET Core 1.0应用程序迁移到ASP.NET Core 2.0。在我的启动中,我正在配置两个身份:services.AddIdentity<IdentityUser, IdentityRole>(configureIdentity) .AddDefaultTokenProviders() .AddUserStore<…