ASP.NET MVC: возврат файла открытого текста для загрузки с контроллера
Рассмотрим необходимость возврата текстового файла из метода контроллера обратно вызывающему. Идея состоит в том, чтобы загрузить файл, а не рассматривать как открытый текст в браузере.
У меня есть следующий метод, и он работает так, как ожидалось. Файл предоставляется браузеру для загрузки, а файл заполняется строкой.
Я бы хотел найти "более правильную" реализацию этого метода, так как я не на 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();
}
Ответы
Ответ 1
Использовать метод File в классе контроллера для возврата FileResult
public ActionResult ViewHL7( int id )
{
...
return File( Encoding.UTF8.GetBytes( someLongTextForDownLoad ),
"text/plain",
string.Format( "{0}.hl7", id ) );
}
Ответ 2
Вы хотите вернуть FileContentResult
из своего метода.