Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
从jquery向控制器发送POST请求时发生500内部服务器错误_Jquery_Asp.net Mvc_Asp.net Mvc 4_Asp.net Mvc 3 - Fatal编程技术网

从jquery向控制器发送POST请求时发生500内部服务器错误

从jquery向控制器发送POST请求时发生500内部服务器错误,jquery,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-3,Jquery,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 3,控制器代码 public ActionResult SearchByUPC_Name(String keyword) { using (DbPOSEntities db = new DbPOSEntities()) { var CompanyID = ((UserModel)Session["User"]).CompanyID; var items = db.tblItems.Where(i => i.CompanyID == Company

控制器代码

public ActionResult SearchByUPC_Name(String keyword)
{
    using (DbPOSEntities db = new DbPOSEntities())
    {
        var CompanyID = ((UserModel)Session["User"]).CompanyID;
        var items = db.tblItems.Where(i => i.CompanyID == CompanyID 
                        && i.IsDeleted == false 
                        && (i.UPC == keyword || i.Name.Contains(keyword))).ToList();
        return Json(new { Success = true, Items = items });
    }
}
$.ajax({
    url: "/Item/SearchByUPC_Name",
    type: "POST",
    async: true,
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ "keyword": searchStr }),
    dataType: "json",
    success: function (response) {
        debugger;
        if (response.Success) {
            console.log('ok');
        }
        else {
            console.log('not ok');
        }
    },
    error: function (err) {
        alert(err.statusText);
    }
});
Js代码

public ActionResult SearchByUPC_Name(String keyword)
{
    using (DbPOSEntities db = new DbPOSEntities())
    {
        var CompanyID = ((UserModel)Session["User"]).CompanyID;
        var items = db.tblItems.Where(i => i.CompanyID == CompanyID 
                        && i.IsDeleted == false 
                        && (i.UPC == keyword || i.Name.Contains(keyword))).ToList();
        return Json(new { Success = true, Items = items });
    }
}
$.ajax({
    url: "/Item/SearchByUPC_Name",
    type: "POST",
    async: true,
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ "keyword": searchStr }),
    dataType: "json",
    success: function (response) {
        debugger;
        if (response.Success) {
            console.log('ok');
        }
        else {
            console.log('not ok');
        }
    },
    error: function (err) {
        alert(err.statusText);
    }
});

我收到此错误:500内部服务器错误:ObjectContext实例已被释放,无法再用于需要连接的操作。

由于实体框架的延迟加载属性,您使用wrap的
可能会导致此错误。它在返回实体之前处理上下文

using (DbPOSEntities db = new DbPOSEntities())
    {
        var CompanyID = ((UserModel)Session["User"]).CompanyID;
        var items = db.tblItems.Where(i => i.CompanyID == CompanyID 
                        && i.IsDeleted == false 
                        && (i.UPC == keyword || i.Name.Contains(keyword))).ToList();
        return Json(new { Success = true, Items = items });
    }
您可以使用
wrap删除
,以使用快速加载来避免您面临的错误:

DbPOSEntities db = new DbPOSEntities();
var CompanyID = ((UserModel)Session["User"]).CompanyID;
var items = db.tblItems.Where(i => i.CompanyID == CompanyID 
                    && i.IsDeleted == false 
                    && (i.UPC == keyword || i.Name.Contains(keyword))).ToList();
return Json(new { Success = true, Items = items });

不要使用
将查询包装在
中。有关详细说明,请参阅。