加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用MVC 3将文本数据导出到csv?

发布时间:2020-12-16 07:28:25 所属栏目:asp.Net 来源:网络整理
导读:我需要将文本数据导出到MVC3中的csv. 我做以下事情: 视图: $(".export").click(function() { $.get("@Url.Action("Export","Log")");}); 控制器: public ActionResult Export() { var sb = new StringBuilder(); var list = this.systemLogRepository.Get
我需要将文本数据导出到MVC3中的csv.
我做以下事情:

视图:

$(".export").click(function() {
    $.get("@Url.Action("Export","Log")");
});

控制器:

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打开“另存为”对话框.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读