你好我的控制器动作代码:
public ActionResult ExportExcel()
{
DataTable dt = new DataTable();
FILL DataTable
try
{
FileExcel(dt);
return Json(new { successCode = "1" });
}
catch (Exception ex)
{
return Json(new { successCode = "0" });
}
}
public void FileExcel(DataTable dt)
{
GridView gv = new GridView();
gv.DataSource = dt;
gv.DataBind();
HttpContext context = System.Web.HttpContext.Current;
context.Response.ClearContent();
context.Response.Buffer = true;
context.Response.AddHeader("content-disposition", "attachment; filename=Ricerca.xls");
context.Response.ContentType = "application/ms-excel";
context.Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
context.Response.Output.Write(sw.ToString());
context.Response.Flush();
htw.Close();
sw.Close();
context.Response.End();
}
我的Ajax Jquery功能
function ExportExcel() {
$.ajax({
type: "POST",
url: '/Home/ExportExcel/',
beforeSend: function () {
AjaxStart('...Export');
},
success: function (data, textStatus, jqXHR) {
AjaxStop();
alert('success')
},
error: function (failure) {
alert('error');
}
});
}
如果我通过一个简单的链接调用ajax函数ExportExcel()
<a href="#" onclick="ExportExcel();">Export Excel Ajax</a>
它不起作用!!!!!!
而如果使用简单的控制器操作
@Html.ActionLink("Export Excel", "ExportExcel", "Home")
出现要保存的excel文件!我想使用第一种方法(ajax)来管理电子竞技延迟
答案 0 :(得分:1)
ajax不会这样工作。您在成功函数的数据变量中有excel文件的数据,但您无法将其保存为文件。尝试将此行添加到成功函数中并自己查看:
alert(data);
您可以通过0宽度和高度的iframe实现您想要的效果。
答案 1 :(得分:0)
如果您希望通过JavaScript触发下载,请尝试此问题的答案How to export to excel in Asp.Net MVC?。
function ExportExcel() {
window.open('/Home/ExportExcel/');
}
答案 2 :(得分:0)
我们可以通过cdn获取Tabletools flash swf文件,提供保存pdf文件的功能。我们将使用人口表。请浏览本网站