如何让用户将数据下载到文件

在下面

我想让用户下载我在网站其他地方显示的数据作为报告。

我正在使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章