使用Javascript在ASP.NET MVC控制器操作上通过POST(HttpPost操作)下载文件

时间:2014-01-15 12:20:37

标签: c# javascript asp.net asp.net-mvc

最初,我的控制器操作接受GET。当我的数据增长时,我被迫转向POST方法以便能够发送更大的数据。 我的控制器操作如下:

[HttpPost]
public ActionResult ClausesPdf(MyArrayModel obj)
{
    ...
    return File(pdf, "application/pdf", "file.pdf");
}

如何调用此操作并使用javascript下载文件?

1 个答案:

答案 0 :(得分:1)

更新:我意识到我对AJAX的原始答案并不完全准确,因为无法从AJAX调用返回文件。我建议你看看这个问题:Download Excel file via AJAX MVC。我相信@CSL有一个很好的答案,类似于你想要的。

我的答案不是简单的javascript。这是jQuery中关于如何在那里完成的AJAX调用:

$.ajax({
    url: urlControllerAction,
    type: 'POST',
    cache: false,
    data: //your parameter data here
})
.done(
    function(result, textStatus, jqXHR) {
        //do something with the "result"
    }
)
    .fail(
        //what should be done if something goes wrong
    );