Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在$.ajax(typ get)调用中获取方法的返回值?_Javascript_C#_Asp.net Mvc - Fatal编程技术网

Javascript 如何在$.ajax(typ get)调用中获取方法的返回值?

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

我有一个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;
        }

我知道,我必须添加
数据:
属性,但我真的不知道,在
数据:
之后应该写些什么才能返回此列表。

您不需要将
数据
传递为不接受任何参数的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');

        }
    });