使用JQuery,ajax和c#下载文件

时间:2013-09-14 10:54:43

标签: c# jquery ajax asp.net-mvc

我在网上尝试过很多文章,用于使用JQuery,Ajax和C#下载文本文件。他们中的大多数人说你不能使用ajax下载文件。

这是我的JQuery-Ajax代码

    $(document).on("click", "#imgDownload", function (event) {
        $.ajax({
            url: "/members/DownloadSelectedFile?SelectedUserName=" + $("#AllowedFriends").find(":selected").text() + "&SelectedFileName=" + $(this).siblings("span").eq(0).text(),
            success: function () {
                alert("Khushi");
            }
        });
    });

这是我的C#代码

public void DownloadSelectedFile(string SelectedUserName, string SelectedFileName)
        {
            Response.Clear();
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("Content-Disposition", "Filename=" + SelectedFileName + ".txt");
            Response.TransmitFile(Server.MapPath("~/Users/" + SelectedUserName + "/" + (string)Session["LoggedInUserName"] + "/" + SelectedFileName + ".txt"));
            Response.End();
        }

那么,为了能够下载文本文件,我需要做些哪些更改。

1 个答案:

答案 0 :(得分:4)

为文档添加IFrame,runat = server或不....以下示例要求您保留客户端

<iframe id="myDownloaderFrame" style="display:none;" ></iframe>


$(document).on("click", "#imgDownload", function (event) {
    $("#myDownloaderFrame").attr("src","/members/DownloadSelectedFile?SelectedUserName=" + $("#AllowedFriends").find(":selected").text() + "&SelectedFileName=" + $(this).siblings("span").eq(0).text());

});