如何使用AJAX和MVC实现文件下载

Arc*_*ian 12 c# ajax asp.net-mvc

我想通过在MVC下使用jQuery AJAX调用和一些参数来提供文件下载操作

(javascript)
function DoDownload(startDate) {

  $.ajax({ 
     url:"controller/GetFile/",
     data: {startDate:startDate}
     ...
  });

}

C# Controller Code

 public void GetFile(string startDate) {

  var results = doQueryWith(startDate);

   // Create file based on results
   ....
   // How do I tell the server to make this a file download??
 }
Run Code Online (Sandbox Code Playgroud)

我通常会让我的文件下载一个链接,如:

<a h r e f="mycontroller/getfile/1"/>Download</a>
Run Code Online (Sandbox Code Playgroud)

但在上面的情况下,日期将是动态的.

如果我不使用ajax,使用javascript将params传递给MVC控制器的首选方法是什么?

例:

window.location  = "mycontroller/GetFile/" + $("#fromDate").val();
Run Code Online (Sandbox Code Playgroud)

假设日期是12-25-2012

这会产生吗?

mycontroller/GetFile/12/25/2012
Run Code Online (Sandbox Code Playgroud)

MVC会将此视为三个参数吗?

Arc*_*ian 11

我最终做的是从我的javascript调用我的控制器,如:

var url = "/mycontroller/GetFile?startDate=" + $("#mydate").val() + etc...

window.location = url;
Run Code Online (Sandbox Code Playgroud)

mycontroller.cs

 public void GetFile(DateTime startDate) 
{

}
Run Code Online (Sandbox Code Playgroud)

我最初关心的是日期参数.我不想解析它.

  • 我认为最简单的工作解决方案:) (2认同)

归档时间:

查看次数:

44806 次

最近记录:

6 年,11 月 前