【发布时间】:2018-05-15 00:19:12
【问题描述】:
我想让用户下载我在网站其他地方作为报告显示的数据。
我正在使用 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/(只需单击下载链接并检查文件)
【问题讨论】:
-
这不是错误消息。你在某处渲染它,也许是一些
@Html.Raw(model)或类似的东西。 -
这可能不是错误消息,而是在某个对象上调用
ToString()的结果。 -
事情是 ToString 和 Html.Raw 工作得很好。一切都完美显示。
-
嗯...发布整个文件,我们也许可以提供帮助
-
好的,我会在 GitHub 上放一些东西
标签: c# razor asp.net-core-mvc