如何在ASP.NET MVC 4和jquery中使用web api下载文件
我是使用ASP.NET MVC 4和Web Api的新手。
我想允许用户下载一个文件,这个文件我将在服务器端创建。 为了创建文件,我设法获得了以下代码
[ActionName("Export")] public HttpResponseMessage PostExportData(SomeModel model) { string csv = _service.GetData(model); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new StringContent(csv); //a text file is actually an octet-stream (pdf, etc) result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); //we used attachment to force download result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentDisposition.FileName = "file.csv"; return result; }
如何使用JQUERY来调用这个WEB API方法?
但是我不知道如何使用jquery调用这个web api并让它返回一个文件,下载任何文件时通常会得到“另存为/打开”选项。
有人可以帮助我并指导我如何拨打电话并下载文件。 谢谢。
您可以在要使用jquery的视图中执行类似的操作。 我假设控制器的名称是ExportController。 您还必须分解模型变量,或者通过其他方式在HttpResponseMessage PostExportData(SomeModel model)
收集模型。
HTML:
export
JavaScript的:
使用POST
function UpdateForm(modelObject) { if ($('#hidden-form').length < 1) { $('
然后你可以通过js发布#hidden-form
,这将触发文件下载
更新:这是发布的完整示例,并且未检查拼写错误等,因此请调试任何小错误。
- 如何在.net MVC 4中中止长时间运行的Ajax请求?
- 使用fnServerParams将数据发送到服务器,使用jquery DataTable的aoData在MVC4中不起作用
- 在ASPNET MVC 4应用程序中命令Jquery脚本
- Grid.MVC日期filter
- jQuery ajax在IE,Chrome和FF中工作……但不是Safari(使用MVC 4的服务器)
- MVC5中的自动完成下拉列表?
- .net mvc 4 application – 从ajax调用到控制器中的函数
- ASP.NET Web API身份validation选项
- jQuery validate()MVC 4未捕获类型错误对象没有方法’validate’