Если вы имеете дело только с текстом, вам не нужно делать ничего особенного.Просто верните 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");