500使用ajax获取json数据时出错

时间:2015-11-25 15:59:36

标签: json ajax asp.net-mvc

我正在尝试使用ajax调用从我的控制器获取有关我的模型的json数据。我知道500错误可能意味着许多事情,但我想消除我发生简单错误的可能性。

控制台错误地显示:var total2Review = (from h in secondDb.Histories.Where(i => i.ActionId == 104) group h by new { h.ActionId, h.ProcessedImageId } into g where g.Count()> 1 select g).Count(); 。 否则我可以在网址中访问它,但我在控制台中没有得到任何东西。

Index.cshtml

500 Internal Service Error

DataController类

function getData() {
    $.ajax({
        url: "@Url.Action("dataTransfer", "Data")",
        type: "GET",
        dataType: "json",
        success: function(data) {
            console.log(data);
        },
        error: function() {
            console.log("failed");
        }
    });
}

setInterval(function() {
    getData();
}, 10000);

1 个答案:

答案 0 :(得分:7)

500内部错误意味着您的服务器代码失败,因代码错误而遇到异常!

从您的代码中,我可以看到可能导致错误的问题。

从GET操作方法返回Json时,您需要将JsonRequestBehaviour.AllowGet作为Json方法的第二个参数传递。

public JsonResult dataTransfer()
{
    string DataProvider = "Sample";

    var model = from d in db.Data
                where d.Name == DataProvider
                select d;

    return Json(model,JsonRequestBehavior.AllowGet);
}

通常在ASP.NET MVC应用程序中, GET 方法应该返回一个视图,通常 POST 方法对发布的表单数据进行一些处理/ ajax数据并返回响应,可以是 JSON 。但是如果你真的想从你的GET动作方法返回Json数据,你必须明确指定使用上面的方法我们做了

当然,Web API有一个不同的概念(并在幕后实现)