Asp.net mvc 需要修复mvc返回文件xlsx

Asp.net mvc 需要修复mvc返回文件xlsx,asp.net-mvc,Asp.net Mvc,我正在使用asp.NETMVC4,从数据库中获取的excel文件有一些问题。我知道它是特定于mvc的,因为它不会在我的代码的普通asp.net部分中给出错误 当我下载我的xlsx时,它下载得非常好。打开它时,会出现以下错误: 我们发现“name.xlsx”中的某些内容存在问题。你想让我们尽力恢复吗?如果您信任此工作簿的来源,请单击“是” 显然,我点击是。我的任何excel文件都没有问题。它们是正确生成的 下面是我的mvc代码: Return File(attachment.FileContent

我正在使用asp.NETMVC4,从数据库中获取的excel文件有一些问题。我知道它是特定于mvc的,因为它不会在我的代码的普通asp.net部分中给出错误

当我下载我的xlsx时,它下载得非常好。打开它时,会出现以下错误:

我们发现“name.xlsx”中的某些内容存在问题。你想让我们尽力恢复吗?如果您信任此工作簿的来源,请单击“是”

显然,我点击是。我的任何excel文件都没有问题。它们是正确生成的

下面是我的mvc代码:

Return File(attachment.FileContent.Content, attachment.FileContent.Type, attachment.Filename)
  • attachment.FileContent.Content=byteArray与内容
  • attachment.FileContent.Type=在本例中为应用程序/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • attachment.Filename=具有正确结尾标记的文件名(在本例中为.xlsx)
然而,在我正常的asp.net页面上,我根本没有看到这个错误。以下是我在asp.net页面上的操作:

Dim filter As IO.Stream = Response.Filter
Response.Filter = Nothing
Response.Clear()
Response.ContentType = attachment.FileContent.Type
Response.AddHeader("Content-Disposition", "attachment; filename=" & attachment.Filename)
Response.OutputStream.Write(attachment.FileContent.Content, 0, attachment.FileContent.Length.Value)
Response.End()

如果您有任何建议:我很乐意接受。

没有可以向响应流添加一些数据的自定义操作筛选器?在我给出代码之前,我所做的就是填充我的附件模型。我不在我的应用程序的这一部分使用任何自定义过滤器。