我只是遇到了一个问题,我无法从运行查询的SQL表中获取数据。我的控制器中有一个GetData
ActionResult
我想从服务器检索 JSON 格式的数据,但我无法 这里是操作的代码:
public ActionResult GetData(int pageIndex, int pageSize)
{
EFDbContext db = new EFDbContext();
var query = (from c in db.Products
orderby c.ProductName ascending
select c)
.Skip(pageIndex * pageSize)
.Take(pageSize);
return Json(query.ToList(), JsonRequestBehavior.AllowGet);
}
在我看来,我已经放置了这个 JQuery Ajax 代码来从操作中获取数据,然后将其附加到我的视图正文中定义的容器中,这是代码。
<head>
<title>Infinite Scroll</title>
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
var pageSize = 10;
var pageIndex = 0;
$(document).ready(function () {
GetData();
$(window).scroll(function () {
if ($(window).scrollTop() ==
$(document).height() - $(window).height()) {
GetData();
}
});
});
function GetData() {
$.ajax({
type: 'GET',
url: '/Product/GetData',
data: { "pageindex": pageIndex, "pagesize": pageSize },
dataType: 'json',
success: function (data) {
if (data != null) {
for (var i = 0; i < data.length; i++) {
$("#container").append("<h2>" +
data[i].ProductName + "</h2>");
}
pageIndex++;
}
},
beforeSend: function () {
$("#progress").show();
},
complete: function () {
$("#progress").hide();
},
error: function () {
alert("Error while retrieving data!");
}
});
}
</script>
</head>
我总是得到
500(内部服务器错误)
,知道吗?
尝试method: "GET"
使用javascript方法而不是type: "GET"
将字符串数据而不是 int 数据发送到控制器。
var pageindex = 0;
var pagesize = 10;
$.ajax({
type: 'GET',
url: '/Product/GetData',
data: { pageIndex : pageindex , pageSize : pagesize},
dataType: 'json',
.
.
});
希望这有帮助