我需要一些帮助,这个错误“的ObjectContext实例已被处置,不能再用于需要连接的操作。”asp.net mvc ObjectDisposedException与ef
这是一个asp.net mvc3,EF4和MS SQL。 这里是具有两个下拉菜单剃刀:
<div class="editRow">
@Html.DropDownListFor(m=>m.IndustryId, (SelectList)ViewBag.Industry, @Empower.Resource.General.ddlDefaultVal, new { @class = "ddl400" })
@Html.ValidationMessageFor(m => m.IndustryId)
</div>
<div class="editRow">
@Html.DropDownListFor(m=>m.ProvinceId, (SelectList)ViewBag.Province, @Empower.Resource.General.ddlDefaultVal, new {@class = "ddl400"})
@Html.ValidationMessageFor(m => m.ProvinceId)
</div>
控制器:
IndustryService indService = new IndustryService();
ViewBag.Industry = new SelectList(indService.GetAllIndustry(), "IndustryId", "IndustryName");
ProvinceService proService = new ProvinceService();
ViewBag.Province = new SelectList(proService.GetAllProvince(), "ProvinceId", "ProvinceName");
return View();
ProvinceService:
public IEnumerable<Province> GetAllProvince()
{
using (var context = DBContext.ObjectContext)
{
var pros = context.Provinces;
return pros;
}
}
IndustryService如上相同...
public class DBContext
{
private static EmpowerDBEntities _empowerContext;
public static EmpowerDBEntities ObjectContext
{
get
{
if (_empowerContext == null)
_empowerContext = new EmpowerDBEntities();
return _empowerContext;
}
}
}
我知道第二次下拉时,如果尝试在前一个查询拒绝连接时尝试检索数据,则会出现问题。请帮助我,谢谢。
我做了你的建议,使用“返回优点。tolist();“,它抛出的对象正好放置在这一行 – Jack
看到我的编辑你有另外一个问题,我上面解决 –
非常感谢你,我会尝试!但你能想到其他更好的方式来实现这个 - 用两次查询数据库填充两个下拉列表 – Jack