Я искал на SO и не нашел ответа на проблему, с которой я столкнулся.
Я сделал linq, чтобы получить все данные из двух таблиц, и один вызов ajax, чтобы получить новые данные иЗаполните мой раскрывающийся список при изменении других раскрывающихся списков.
Вот что у меня есть:
Контроллер
public ActionResult Index(int? page)
{
vEntities db = new vEntities();
var estados = (from e in db.estado
select e);
var localidades = (from l in db.localidade
select l);
ViewData["estados"] = new SelectList(estados, "cod", "descricao");
ViewData["localidades"] = new SelectList(localidades, "id", "descricao");
return View();
}
public ActionResult GetLocalidades(string codEstado)
{
vEntities db = new vEntities();
var info = (from l in db.localidade
where l.cod_estado == codEstado
select l);
return Json(info);
}
Просмотр
<%= Html.DropDownList("estados", ViewData["estados"] as SelectList, String.Empty)%>
<%= Html.DropDownList("localidade", ViewData["localidades"] as SelectList, String.Empty)%>
<script type="text/javascript">
$(document).ready(function () {
$("#estados").change(function () {
var ddlLocalidade = $("#localidade")[0];
ddlLocalidade.length = 0;
var cod = $(this).val();
$.post(
"/Home/GetLocalidades",
{ codEstado: cod },
function (data) {
var option;
$.each(data, function () {
option = new Option(this.descricao, this.id);
ddlLocalidade.options.add(option);
});
}
);
});
});
</script>
И когдаЯ изменяю первый выпадающий список, который активирует функцию JS, я получаю эту ошибку сразу после того, как метод "Getocalidades" возвращает Json:
Уже существует открытый DataReader, связанный с этим подключением, который долженсначала закройте
Я думаю, у меня возникли проблемы с форматированием кода :) извините за это.
Я не вижу проблем с соединением, может кто-нибудь сказать мнечто не так, пожалуйста?
Заранее спасибо