C# ASP.NET MVC5通过传递参数从jQuery启动动态文件下载
在asp mvc 5中,我下载了以下代码:C# ASP.NET MVC5通过传递参数从jQuery启动动态文件下载,c#,jquery,asp.net,asp.net-mvc,C#,Jquery,Asp.net,Asp.net Mvc,在asp mvc 5中,我下载了以下代码: //jQuery $(document).on('click', "#download_export", function (e) { window.location = url_download; }); //c# public FileResult GetFile() { return File(Encoding.UTF8.GetBytes("dfdfdf dfssdfdfs")
//jQuery
$(document).on('click', "#download_export", function (e) {
window.location = url_download;
});
//c#
public FileResult GetFile()
{
return File(Encoding.UTF8.GetBytes("dfdfdf dfssdfdfs"),
"text/plain",
"test.txt");
}
它工作并触发在客户端浏览器上下载txt文件
我想通过从控制器传递参数上的文件内容来做同样的事情
我试过:
$(document).on('click', "#download_export", function (e) {
$.get(url_download,
{
content : 'this is my content'
}
, function (data) {
console.log('works')
});
});
public FileResult GetFile(string content)
{
return File(Encoding.UTF8.GetBytes(content),
"text/plain",
"test.txt");
}
我在调试器中看到,已达到操作,但不会触发下载
你知道怎么做吗?恐怕你不能用ajax下载文件。 由于安全原因,不允许javascript访问本地系统文件。想象一下,来自远程站点的js试图窃取你电脑上的文件 尝试: 或者您可以在页面上创建一个隐藏的iframe来下载文件,以避免更改当前窗口的位置
$(document).on('click', "#download_export", function (e) {
$("#yourIframe").attr("src",url_download + "?content=this is my content");
});
如果您想要
动态下载
,那么您可以使用->$.filedownload jquery插件来实现这些目的。简单用法:
var promise = $.fileDownload(url_download+"?content=yourContentHere");
此处-
公共文件结果GetFile(字符串内容)
-调试时内容的值是多少?
var promise = $.fileDownload(url_download+"?content=yourContentHere");