如何显示打开/保存对话框asp net mvc 4

我可以请求一个文件并将其返回。 我不知道如何显示打开/保存对话框。

视图:

function saveDocument() { $.ajax({ url: '/Operacao/saveDocument', type: 'POST', DataType: "html", success: function (data) { //I get the file content here } }); } 

控制器:

 public void saveDocument() { Response.ContentType = "image/jpeg"; Response.AppendHeader("Content-Disposition", "attachment; filename=SailBig.jpg"); Response.TransmitFile(Server.MapPath("~/MyPDFs/Pdf1.pdf")); Response.End(); } 

我认为您无法在浏览器中同步下载文件,只需将用户重定向到该操作,浏览器将打开一个保存对话框窗口。 在asp.net mvc中,您可以使用一种操作方法来下载文件,从而使用基本控制器的File方法生成FileResult

 public ActionResult SaveDocument() { string filePath = Server.MapPath("~/MyPDFs/Pdf1.pdf"); string contentType = "application/pdf"; //Parameters to file are //1. The File Path on the File Server //2. The content type MIME type //3. The parameter for the file save by the browser return File(filePath, contentType, "Report.pdf"); } 

强制firefox(不用于chrome)打开保存对话框的一种方法是将contenttype设置为“application / octet-stream”并为其指定一个具有正确扩展名的文件名。

 public ActionResult SaveDocument() { string filePath = Server.MapPath("~/MyPDFs/Pdf1.pdf"); string contentType = "application/octet-stream"; //<---- This is the magic //Parameters to file are //1. The File Path on the File Server //2. The content type MIME type //3. The parameter for the file save by the browser return File(filePath, contentType, "Report.pdf"); }