我需要找到一种方法,通过使用一些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" />
这是在没有任何错误的情况下执行,但是文件根本没有被创建。 它甚至没有显示保存文件对话选项框。
有人可以告诉我我做错了什么吗?
答案 0 :(得分:0)
这不是这样做的方法--AJAX调用期望HTML,XML或JSON - 你要返回一个文本文件。
根本不需要AJAX调用。只需将您的操作设为“获取”,然后在您的网页上提供指向该操作的链接即可。如果您不想打开新页面,只需附加相应的标题以强制下载。
MVC没有回发的想法 - GET请求只是另一个请求。