Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 导出到csv而不回发_Asp.net Mvc_C# 4.0 - Fatal编程技术网

Asp.net mvc 导出到csv而不回发

Asp.net mvc 导出到csv而不回发,asp.net-mvc,c#-4.0,Asp.net Mvc,C# 4.0,我需要找到一种方法,通过使用一些jquery脚本将数据导出到csv文件,而无需回发 我试图通过使用ajax实现这一点,下面是代码: public ActionResult ExportDealerData(int shopId, int? siteId, int dealerId, DateTime? frmDate, DateTime? toDate, string fileName) { string csvexport = ExportToCsv .Creat

我需要找到一种方法,通过使用一些jquery脚本将数据导出到csv文件,而无需回发

我试图通过使用ajax实现这一点,下面是代码:

public ActionResult  ExportDealerData(int shopId, int? siteId, int dealerId, DateTime? frmDate, DateTime? toDate, string fileName)
{
     string csvexport = ExportToCsv
         .CreateInstance(shopinstance, null, null, shopInstanceDates, true)
         .ReturnCsvFile();

     return File(new UTF8Encoding().GetBytes(csvexport), "csv", "test.csv");
}
jquery:

$.ajax({
  type: "POST",
  contentType: "application/json; charset=utf-8",
  url: oAxn.ds,
  data: JSON.stringify(oAxn.p(graphsDrpDwn)),
  success: function (graphData) {
       window.location = "/stealth/ExportDealerData?file=" + "test.csv";
  }
}


<asp:LinkButton ID="lnkMetricExport" CssClass="exportCsv composite" OnClientClick="YC.ajaxCall('dealerexport','dealerTab','','','');return false;" runat="server" Text="Export CSV" />
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
网址:oAxn.ds,
数据:JSON.stringify(oAxn.p(graphsDrpDwn)),
成功:函数(graphData){
window.location=“/steave/ExportDealerData?file=“+”test.csv”;
}
}
执行时没有任何错误,但是根本没有创建文件。 它甚至没有显示“保存文件”对话框


有人能告诉我我做错了什么吗?

这不是做这件事的方法-AJAX调用除了HTML、XML或JSON之外-您正在返回一个文本文件

您根本不需要AJAX调用。只需将您的操作设置为“GET”,并在页面上提供指向该操作的链接。如果您不想打开新页面,只需添加适当的标题以强制下载即可


MVC没有回发的概念-GET请求只是另一个请求。

您已将其标记为ASP.NET MVC,但看起来您使用的是WebForms。您能确认吗?Richard Ev-这是一个actionresult,当然是MVC?实际上两者都有。我们的html不是razor,但我们使用ajax CallsHanks从控制器获取一些数据对于响应。你能告诉我该操作方法需要提供什么样的链接吗?你能给我一个例子吗?我不能使用Html。Actionlink因为页面不是razor,它是asp.net样式的页面,操作也需要一些参数?然后你只需要写一些代码来输出适当的URL。它类似于:www.yoursite.com/ControllerName/ExportDealerData/?siteID=1…等