Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC发送内部状态代码为500的Json对象_Asp.net_Json_Asp.net Mvc - Fatal编程技术网

ASP.NET MVC发送内部状态代码为500的Json对象

ASP.NET MVC发送内部状态代码为500的Json对象,asp.net,json,asp.net-mvc,Asp.net,Json,Asp.net Mvc,让我们首先看看代码块 用于发送json数据的控制器函数 [HttpGet] public ActionResult LoadCourseForDataTable() { using (var dd = new DBContext()) { var data = dd.Courses.ToList(); return Json(new {data = data}, JsonRequestBehavior.AllowGet); }

让我们首先看看代码块

用于发送json数据的控制器函数

[HttpGet]
public ActionResult LoadCourseForDataTable()
{
    using (var dd = new DBContext())
    {
        var data = dd.Courses.ToList();
        return Json(new {data = data}, JsonRequestBehavior.AllowGet);
    }             
}
此块用于从上述代码块获取json数据

<script>
    $(document).ready(function () {
        $('#CourseTable').DataTable({
            "ajax": {
                "url": "/Course/LoadCourseForDataTable",
                "type": "GET",
                "datatype": "json",
            },
            "columns": [
                { "data": "CourseID", "autoWidth": true },
                { "data": "Title", "autoWidth": true },
                { "data": "Credits", "autoWidth": true },
                { "data": "DepartmentID", "autoWidth": true },
            ]
        });
    });
</script>

$(文档).ready(函数(){
$('#CourseTable')。数据表({
“ajax”:{
“url”:“/Course/LoadCourseForDataTable”,
“类型”:“获取”,
“数据类型”:“json”,
},
“栏目”:[
{“data”:“CourseID”,“autoWidth”:true},
{“数据”:“标题”,“自动宽度”:true},
{“data”:“Credits”,“autoWidth”:true},
{“数据”:“部门ID”,“自动宽度”:true},
]
});
});
必须加载到客户机服务器上的所有LIB都已完全完成并正确加载。他们在这个问题上不是问题

服务器响应为500内部错误

以下是详细的例外情况

ObjectContext实例已被释放,不能再用于需要连接的操作


我认为一切都是真的,但我有一个有趣的问题。你能帮助我吗?谢谢你

这很可能是因为您启用了延迟加载。在处理DBContext时,您正在关闭与数据库的连接,以便在关闭using语句后它无法加载任何相关实体

问题是,using语句中的dispose是在传递方法的结果之前运行的。当JsonResult尝试序列化您的课程时,他们将看到有一个延迟加载的属性,并尝试加载它。但此时,与数据库的连接已关闭


我严格反对web场景中的延迟加载。出于这个原因和许多其他原因。因此,我给你的唯一建议是禁用延迟加载,如果你想包含相关实体,你应该急切地获取它们。

500内部服务器错误)
意味着服务器上的代码抛出异常。使用浏览器工具“网络”选项卡检查响应,该响应将向您提供错误的详细信息。服务器也将提供相当详细的错误消息。错误是什么?编辑了问题。请检查它。使用语句删除
,或将
return Json()
移到后面。尝试使用带有
选择
方法的投影只返回所需字段。还要确保
课程
的属性是虚拟的。我认为这个问题是重复的,但你的回答很清楚,我感谢你。