我正在尝试使用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);
答案 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有一个不同的概念(并在幕后实现)