所以我试图提示将位于服务器上的文本文件下载到用户的计算机上。我一直在寻找并失败了几个小时,现在我希望我可以在这里问一些帮助。
该功能位于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相关?
如果我需要添加任何内容以澄清,请告诉我,这是我第一次提出问题。谢谢你的帮助!
答案 0 :(得分:0)
不要使用AJAX进行文件下载,只需提供一个指向控制器路径/ URL的链接,该链接将运行您已有的相同基本服务器代码。