我需要在 MVC3 中将文本数据导出到 csv。
我执行以下操作:
看法:
$(".export").click(function() {
$.get("@Url.Action("Export","Log")");
});
Controller :
public ActionResult Export()
{
var sb = new StringBuilder();
var list = this.systemLogRepository.GetFilterList(
null, this.ControllerContext.RequestContext.HttpContext.Request.QueryString, null);
foreach (var item in list)
{
sb.AppendFormat(
"{0},{1},{2},{3},{4}", item.Machine.Name, item.PackageID, item.ErrorDescription, item.OccurenceTime, Environment.NewLine);
}
return this.File(new UTF8Encoding().GetBytes(sb.ToString()), "text/csv", string.Format("Log-{0}.csv", DateTime.Now.ToString("g").Replace("/","-").Replace(":","_").Replace(" ", "-")));
}
这将返回内容,但不会弹出带有“另存为”和“打开”选项的窗口
??
谢谢
最佳答案
不要使用 AJAX 下载文件。使用普通链接或按钮:
@Html.ActionLink("export to CSV", "Export", "Log")
现在你可以摆脱 javascript 位了。您不能使用 AJAX 下载文件的原因是内容确实会传输到客户端,但您无法从 javascript 打开“另存为”对话框。
关于asp.net-mvc - 如何使用 MVC 3 将文本数据导出到 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12795174/