【发布时间】:2016-01-06 20:07:39
【问题描述】:
我试图将一个 Document 对象数组从一个方法(比如说从一个控制器)传递到调用该方法的 JavaScript(在视图中)。由于某种原因,该方法不会传递数组(仅当数组为空时才有效)。我还尝试将所有数组成员放入一个新数组,甚至是一个列表并将其传递给视图,但它不起作用(Inspect Element -> Console = 500(Internal Server Error)) (Screenshot here)。
这里是 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);
});
这是 C# 代码,将数组从上面发送到 JavaScript:
public ActionResult SearchDocument(int binderId, string description)
{
//documents is a array
var documents = Search.SearchDocument(binderId, description);
return Json(documents, JsonRequestBehavior.AllowGet);
}
我认为 JavaScript 有问题,但我不知道是什么。 谢谢!
【问题讨论】:
-
你是在设置 'dataType' 和 'contentType' ajax 属性吗,看起来不像。
-
我这样做了,但没有任何改变。只接收一个对象时工作正常,但接收数组时失败。
-
您是否调试了控制器代码,以证明文档变量是包含数据的数组?尝试将
debugger;放入您的success回调 -
我刚刚注意到内部服务器错误的事情,对不起。问题出在控制器操作中。您可以发布 Search.SearchDocument 的代码吗?返回的是什么?
-
这里是。 SearchDocument 接收一个数组,这很好,但是 SearchDocument 方法和 JS 之间的某些东西出错了... public static List
SearchDocument(int binderId, string documentDescription) { using (var db = new ApplicationDbContext()) { var文档 = db.Documents.Where(x => x.BinderId == binderId && x.DocumentDescription.Contains(documentDescription)).ToList();退回文件; } }
标签: javascript c# arrays json ajax