使用FileStreamResult作为返回值的jQuery帖子

时间:2010-04-28 14:10:45

标签: jquery asp.net-mvc

我对jquery和asp.net mvc很新。我的问题是我在控制器中调用一个返回FileStreamResult的方法。这工作正常,但是当我用jQuery帖子调用它时它不起作用。我可以看到vs调试工具,程序正在执行该方法。因此我认为它与我的jQuery调用应该处理返回参数有关? Somenoe?

jQuery代码:

    <script type="text/javascript">
    function createPPT() {
            $.post("<%= Url.Action( "DownloadAsPowerpoint", "RightMenu" )%>");
    }
    </script>

控制器中的方法:

    public ActionResult DownloadAsPowerpoint()
    {
        Stream stream; 
        //...
        HttpContext.Response.AddHeader("content-disposition", "attachment; filename=presentation.pptx");

        return new FileStreamResult(stream, "application/pptx");
    }

有人可以解释并给我一些示例代码吗?

1 个答案:

答案 0 :(得分:3)

使用$ .ajax()方法,因为您不发送任何参数:

    function createPPT() {
        //Show waiting dialog here
        $.ajax({
            url: '<%=Url.Action("DownloadAsPowerpoint") %>',
            method:'GET',
            success: function (fileStream) {
                //Hide waiting dialog here
                alert(fileStream); //This is your filestream
            }
        });
        return false;
    }