如何将Json数组从控制器传递到view.cshtml中的Javascript(ajax)

如何将Json数组从控制器传递到view.cshtml中的Javascript(ajax),javascript,c#,arrays,json,ajax,Javascript,C#,Arrays,Json,Ajax,我试图将一组文档对象从一个方法(比如从一个控制器)传递到调用该方法的JavaScript(在视图中)。由于某些原因,该方法不会传递数组(仅当数组为空时才有效)。我还尝试将所有数组成员放入一个新数组,甚至是一个列表,并将其传递给视图,但它不起作用(Inspect Element->Console=500(内部服务器错误)) () 以下是JavaScript代码的一部分: $.ajax({ method:"get", data: data,

我试图将一组文档对象从一个方法(比如从一个控制器)传递到调用该方法的JavaScript(在视图中)。由于某些原因,该方法不会传递数组(仅当数组为空时才有效)。我还尝试将所有数组成员放入一个新数组,甚至是一个列表,并将其传递给视图,但它不起作用(Inspect Element->Console=500(内部服务器错误)) ()

以下是JavaScript代码的一部分:

$.ajax({
            method:"get",
            data: data,
            url: url + "?binderId=" + companyId +"&description="+ data

        }).success(function (response) {
            console.log("Success");
            console.log(response);

        }).error(function (response) {
            console.log("Error");
            console.log(response);
        });
下面是从上面向JavaScript发送数组的C#代码:

 public ActionResult SearchDocument(int binderId, string description)
    {
        //documents is a array
        var documents = Search.SearchDocument(binderId, description);
        return Json(documents, JsonRequestBehavior.AllowGet);
    }
我认为JavaScript有些问题,但我不知道是什么。
谢谢大家!

尝试返回JsonResult而不是ActionResult


public JsonResult SearchDocument(int binderId,string description)

您是否设置了'dataType'和'contentType'ajax属性,它看起来不像。我这样做了,没有任何变化。它在只接收一个对象时工作正常,但在接收数组时失败。是否调试了控制器代码以证明documents变量是一个包含数据的数组?尝试放置一个
调试器
进入您的
成功
回调我刚刚注意到内部服务器错误,抱歉。问题在于控制器的操作。你能发布Search.SearchDocument的代码吗?那是什么?给你。SearchDocument收到一个数组,这很好,但是SearchDocument方法和JS之间出现了一些问题。。。公共静态列表搜索文档(int binderId,string documentDescription){using(var db=new ApplicationDbContext()){var documents=db.documents.Where(x=>x.binderId==binderId&&x.documentDescription.Contains(documentDescription)).ToList();return documents;}}试过了,结果也一样。