Я хочу разрешить пользователю загружать данные, которые я отображаю в других местах на сайте, в виде отчетов.
Я использую приложение Asp.net core 2.1 rc1 MVC.
Мой хитрый план состоял в том, чтобы создать специальный вид, который бы отображал данные в виде текста с разделителями табуляции и использовал заголовки ответов, чтобы браузер загружал их вместо отображения HTML. Это почти идеально работает.
Мой код "HttpGet" в контроллере выглядит так:
Response.Headers.Add("Content-disposition", "attachment; filename=export.tsv");
return View(MyModel);
Мой вид бритвы выглядит так:
@Model IEnumerable<MyModel>
@{
Layout = null;
String LineBreak = Environment.NewLine;
String Tab = "\t";
}
Header1 Header2 ...
@if (Model.Count > 0)
{
foreach (MyModel myModel in Model)
{
@myModel.Field1@Html.Raw(@Tab)@myModel.Field2 ... @Html.Raw(@LineBreak)
}
}
Это работает великолепно, за исключением того, что это ужасное сообщение об ошибке появляется в первой строке файла:
System.Collections.Generic.List`1[MyApp.Models.MyModel] IEnumerable<MyModel>
Остальная часть файла - именно то, что мне нужно.
Кто-нибудь знает, как удалить это сообщение? Или если что-то не так с моим общим подходом ...
Полный проект доступен здесь: https://github.com/under3415/ExportError/ (просто нажмите на ссылку для скачивания и изучите файл)