【问题标题】:MVC C# Download file and save as dialogMVC C# 下载文件并另存为对话框
【发布时间】:2020-11-25 21:27:04
【问题描述】:

大家好,想知道是否有人可以提供帮助;我已经编写了这段代码,它将生成一个 Excel 电子表格并将其保存到指定位置。然后我想通过从存储位置读取文件然后询问用户他们想要存储它的位置来显示一个“另存为”对话框。 excel文件生成正常,可以正常打开!但是我的问题是我编写的代码似乎将文件直接输出到我的浏览器,所以我在浏览器屏幕上获取了 excel 文件的所有内容,没有按预期显示另存为对话框!

public ActionResult FormSuccess()
        {
            String FileName = System.Configuration.ConfigurationManager.AppSettings["FileName"].ToString();
            String FilePath = System.Configuration.ConfigurationManager.AppSettings["FileSaveLocation"].ToString();
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.ClearContent();
            response.Clear();
            response.ContentType = "application/vnd.xls";
            response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
            response.TransmitFile(FilePath + FileName);
            response.End();

            return PartialView("FormSuccess");
        }

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    哟文斯,技巧怎么样?还戴着勋章? :)

    您不应该使用 FileContentResult 而不是 PartialView 吗?您将无法在同一调用中返回文件和 HTML“成功”内容 - 您可能应该先调用 PartialView,然后使用 javascript 在新窗口中打开 FileContentResult URL。

    看到这个:http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files

    还有这个网址:

    http://weblogs.asp.net/rajbk/archive/2010/05/03/actionresult-types-in-mvc2.aspx

    【讨论】:

      【解决方案2】:

      我认为您的问题是您返回 PartialView。让我给你一个我的实现的小例子:

          public ActionResult FileXls()
          {
              var output = new MemoryStream();
              var writer = new StreamWriter(output);
      
              //create your workbook excel file
              ....
              //workbook.Save(output);
      
              writer.Flush();
              output.Position = 0;
              return File(output, "text/excel", "file.xls");
          }
      

      【讨论】:

        猜你喜欢
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-20
        • 2021-12-13
        • 1970-01-01
        相关资源
        最近更新 更多