【发布时间】:2014-11-23 11:33:46
【问题描述】:
我正在从下拉选择中使用 Json 值填充文本框。 Action() 方法工作正常它返回 Json 值,但页面不会将这些值填充到 TextBoxes 控件。当我使用开发者工具时,我得到,它抛出一个错误“操作无法完成,因为 DbContext 已被释放。”
控制器
private hcEntities db = new hcEntities();
// GET: Chains
public ActionResult Index()
{
ViewData["chain_name"] = new SelectList(db.chains, "code", "name");
return View(db.chains.ToList());
}
//Action Function callby javascript
[HttpPost]
public ActionResult Action(string code)
{
using (var ObjDb = new hcEntities())
{
var query = from c in ObjDb.chains
where c.code == code
select c;
return Json(query);//Return Json Result
}
}
查看:-
<script type="text/javascript">
function Action(code) {
$.ajax({
url: '@Url.Action("Action", "Chains")',
type: "POST",
data: { "code": code },
"success": function (data) {
if (data != null) {
var vdata = data;
$("#ChainName").val(vdata[0].name);
$("#ChainCode").val(vdata[0].code);
$("#username").val(vdata[0].username);
}
}
});
}
【问题讨论】:
-
试试
return Json(query.ToList()); -
我已经使用了它,它得到了异常“EntityFramework.dll中发生'System.InvalidOperationException'类型的异常,但未在用户代码中处理”
-
只是为了测试,在这一行去掉 using 和重用你的 class 级别的 dbcontext
var query = from c in db.chains -
当我使用类级别对象时,我得到了这个stackoverflow.com/questions/26092390/mvc5-mqsql-issue
-
好的,我想确保您只有一个 dbcontext,那么您可以删除一级类并在所有控制器方法中添加
using (var db = new hcEntities())吗?
标签: mysql entity-framework asp.net-mvc-5