提示将文本文件下载到用户 - API控制器C#

时间:2014-07-07 19:05:52

标签: c# javascript asp.net download

所以我试图提示将位于服务器上的文本文件下载到用户的计算机上。我一直在寻找并失败了几个小时,现在我希望我可以在这里问一些帮助。

该功能位于ApiController中。

public class LogViewerController : ApiController

这是一个名为。

的函数
public void Get()
    {
        try
        {
            string path = @"C:\TestDocument.txt";

            var context = HttpContext.Current;
            context.Response.Clear();
            context.Response.ContentType = "application/octet-stream";
            context.Response.AddHeader("Content-Disposition", "attachment; filename="Test");

            context.Response.WriteFile(path);

            context.Response.End();
        }
        catch (Exception e)
        {
            //
        }
    }

我希望它在路径中获取文件,然后询问用户是否要下载/保存文件。但是,这并没有发生。正在读取文件,但输出只是打印到' #textField'而不是下载。

这是Javascript / ajax方面:

$.ajax({
        cache: false,
        type: 'GET',
        url: '@ViewBag.servicesUrl/LogViewer',
        datatype: 'JSON',
        success: function (retdata) {
            $('#textField').html(retdata);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            //
        },
    });

我完全不知道是什么导致了这个问题。它是否与Get相关?

如果我需要添加任何内容以澄清,请告诉我,这是我第一次提出问题。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

不要使用AJAX进行文件下载,只需提供一个指向控制器路径/ URL的链接,该链接将运行您已有的相同基本服务器代码。