Javascript 如何在$.ajax(typ get)调用中获取方法的返回值?
我有一个ASP.NET MVC应用程序,其中有一个返回对象列表的方法:Javascript 如何在$.ajax(typ get)调用中获取方法的返回值?,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我有一个ASP.NET MVC应用程序,其中有一个返回对象列表的方法: public List<FileObject> GetAllFilesFromDirectory() { string filePath = @"C:\FilesToWatch"; string[] fileEntries = Directory.GetFiles(filePath, "*.txt", SearchOption.TopDirector
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;
}
我知道,我必须添加
数据:
属性,但我真的不知道,在数据:
之后应该写些什么才能返回此列表。您不需要将数据
传递为不接受任何参数的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({
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');
}
});
首先,从get请求中删除它不需要的数据。然后在成功函数中输入Console.log(数据);这样您就可以在chrome控制台或任何其他控制台中查看返回的对象browser@IbraHimM.Nada在我的firefox浏览器中,我得到了“Error data not defined”@IbraHimM.Nada我已经找到了解决方案,我忘了给success:function()数据参数,现在它工作了,谢谢!我不能使用JSONRequestBehavior,它是红色的underlined@FlorianHaberfellner确保您拥有名称空间
System.Web.Mvc
$.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');
}
});