我有一个ASP.NET MVC应用程序,其中有一个方法,该方法返回对象列表:
public List<FileObject> GetAllFilesFromDirectory()
{
string filePath = @"C:\FilesToWatch";
string[] fileEntries = Directory.GetFiles(filePath, "*.txt", SearchOption.TopDirectoryOnly);
FileObject fo;
List<FileObject> list = new List<FileObject>();
foreach (var file in fileEntries)
{
FileInfo info = new FileInfo(file);
fo = new FileObject
{
FileName = info.Name, //asdf.txt
FilePath = info.FullName //C:\FilesToWatch\asdf.txt
};
list.Add(fo);
}
return list;
}
现在,我想用javascript返回此列表:
$.ajax({
type: "GET",
url: "Home/GetAllFilesFromDirectory",
data: ???,
success: function () {
console.log('success');
},
error: function () {
console.log('error');
},
complete: function (data) {
console.log('complete');
}
});
我知道我必须添加data:
属性,但是我真的不知道在data:
之后我应该写什么来返回此列表。
参考方案
您无需将data
传递为controllerAction不接受任何参数。您可以从controllerAction返回以下更清晰的结果,如下所示:
public ActionResult GetAllFilesFromDirectory()
{
string filePath = @"C:\FilesToWatch";
string[] fileEntries = Directory.GetFiles(filePath, "*.txt",
SearchOption.TopDirectoryOnly);
FileObject fo;
List<FileObject> list = new List<FileObject>();
foreach (var file in fileEntries)
{
FileInfo info = new FileInfo(file);
fo = new FileObject
{
FileName = info.Name, //asdf.txt
FilePath = info.FullName //C:\FilesToWatch\asdf.txt
};
list.Add(fo);
}
return Json(new { filesList = list }, JsonRequestBehaviour.AllowGet);
}
然后,您可以按照以下方式在ajax中读取响应:
$.ajax({
type: "GET",
url: "Home/GetAllFilesFromDirectory",
success: function (resp) {
if(resp.filesList)
{
$.each(function( index, element ) {
console.log(element.FileName ); // i.e log the file name
});
}
},
error: function () {
console.log('error');
},
complete: function (data) {
console.log('complete');
}
});
ajax:从json数组中提取json对象 - javascriptJSON(来自api的内部数组):[{"id":"001", "name":"john", "age":"40"}, {"id":"002", "name":"jane&…
停止Ajax循环JQuery - javascript我使用ajax代码监视文件夹,以计算该文件夹中正在使用我无权访问的外部批处理复制的文件数。我有以下运行良好的无限循环:function loadProgWav(files){ $("#wav").load("progress_wav.php?file=<?=$row[2]?>"); } setInterva…
div中显示上一页,并显示最后一页数据表 - javascript我正在尝试转到div中显示的上一页。由于我在上述div中使用ajax打开页面,因此“历史记录后退”方法将不起作用,因为浏览器中未保存任何历史记录。我敢肯定,除了建立一个可打开较旧页面的链接之外,我还可以做些其他事情(这是我目前正在做的事情)。这就是说,因为我通过单击数据表上的一行从page_1.php移到page_2.php,所以我想知道是否有什么办法可以重…
和字符中断通过PHP接收JSON - javascript我有一个包含更多对象的数组。如果一个对象包含&字符,则php不会接收&之后的每个对象。可能是什么问题?这就是阿贾克斯xmlhttp.open("POST", "get.php"); xmlhttp.setRequestHeader("Content-Type", "application/…
如何隐藏您网站的javascript文件? - javascript我在main.js文件中编写了许多使用ajax调用PHP函数的函数。问题在于,任何人都可以通过查看页面源代码来查看我的逻辑和内部称为php的网站的文件名。我应该如何防止人们查看我的JavaScript文件? 参考方案 可以混淆Javascript,但是没有什么可以阻止客户端执行在代码中查看网址字符串,或者只需检查HTTP请求本身即可确定正在攻击的URL。这加…