我想让用户下载我在网站其他地方显示的数据作为报告。
我正在使用 Asp.net 核心 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)
{
@[email protected](@Tab)@myModel.Field2 ... @Html.Raw(@LineBreak)
}
}
除了这个丑陋的错误消息出现在文件的第一行之外,这非常有效:
System.Collections.Generic.List`1[MyApp.Models.MyModel] IEnumerable<MyModel>
文件的其余部分正是我需要的。
有谁知道如何删除此消息?或者如果我的一般方法有问题......
完整项目可在此处获得:https : //github.com/under3415/ExportError/(只需单击下载链接并检查文件)
您已经编写了@Model
,而正确的语法是@model
(小写 - 区分大小写)。
第一行@model
指令指定模型类型。@Model
取消引用实际的模型实例。你看到的是它的ToString
代表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句