【问题标题】:.getJSON produce a Download of a File ASP.NET MVC.getJSON 生成文件 ASP.NET MVC 的下载
【发布时间】:2009-02-10 21:32:18
【问题描述】:

我编写了一个 .getJSon,它完成了这项工作,但我让 IE 要求下载文件。这是代码

<script type="text/javascript">
$(function() {
    $('#id').click(function() {
        var dateReport = "01/01/2009";

        $.getJSON('/Report/SendReport', { date: dateReport},
                function(response) {
                    if (response.result == "OK") {
                        $('#OKSendReport').toggle();
                        $('#OKSendReport').html("OK");
                    }
                });
    });
});

控制器中的代码是

 public ActionResult SendReport(string date) {
        //DO Stuff

        return new JsonResult {
            Data = new { result = "OK" }
        };
    }

有什么想法吗?

【问题讨论】:

  • 你从你的控制器返回什么?一个json结果?一个视图,您在哪里手动解析了一些 json?重定向?

标签: jquery asp.net-mvc ajax


【解决方案1】:

尝试在点击事件中添加event.preventDefault();

$(function() {
    $('#id').click(function(event) {
        var dateReport = "01/01/2009";

        event.preventDefault(); // added this

        $.getJSON('/Report/SendReport', { date: dateReport},
                function(response) {
                    if (response.result == "OK") {
                        $('#OKSendReport').toggle();
                        $('#OKSendReport').html("OK");
                    }
                });
    });
});

【讨论】:

  • 我现在收到以下错误:对象不支持此方法
  • 您必须在函数回调中添加event 参数。
【解决方案2】:

嗯,您确定在该实例中触发了 Javascript 吗? #ID 是什么 HTML 类型?如果 JavaScript 没有被调用并且你的控制器试图路由到 json 结果,我认为这可能是你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2011-04-05
    • 2012-01-25
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多