Я пытаюсь заполнить второй раскрывающийся список (который содержит округа) в зависимости от того, что выбрано в первом раскрывающемся списке (который содержит страны).
У меня есть действие контроллера под названием GetCounties:
public JsonResult GetCounties(string id)
{
DBEntities dc = new DBEntities();
JsonResult result = new JsonResult();
var filteredDivisions = from div in dc.Divisions
where div.CountryID == 1 //id
select div;
result.Data = filteredDivisions.ToList();
return Json(result.Data, JsonRequestBehavior.AllowGet);
// return Json(new[] {
// new { Id = filteredDivisions.ToArray()[0].DivisionID, Value = filteredDivisions.ToArray()[0].DivisionName },
// new { Id = 2, Value = "value 2" },
// new { Id = 3, Value = "value 3" },
//}, JsonRequestBehavior.AllowGet);
}
Обратите внимание на закомментированный раздел. Это отлично работает для меня (я получаю первое значение из списка подразделений, а два других называются «значение 2» и «значение 3». Я использовал это для проверки обратного вызова, но это было единственное, что дало мне результаты.
return Json(result.Data, JsonRequestBehavior.AllowGet);
ничего не достигает со стороны просмотра. При отладке все правильные значения есть, но они не появляются в раскрывающемся списке на стороне просмотра. Как я уже сказал, единственные результаты, которые я получаю, — это использование закомментированного кода (жестко закодированные значения, которые, конечно, недостаточно хороши). Я пытался использовать циклы for для перебора списка, чтобы заполнить массив, но ничего не работает, я получаю ошибки, например, анонимный тип доступен только для чтения, поэтому я не могу установить его снова.
Это мой код jquery:
$(function () {
$.getJSON('/Entity/GetCounties', function (result) {
var ddl = $('#DivisionsList');
ddl.empty();
$(result).each(function () {
$(document.createElement('option'))
.attr('value', this.Id)
.text(this.Value)
.appendTo(ddl);
});
});
});
Список дивизионов, конечно же, представляет собой раскрывающийся список со всеми округами, который с помощью приведенного выше оператора возврата без комментариев просто возвращает без изменений, т.е. содержит ВСЕ свои значения, а не только те, которые должны появиться в зависимости от выбранной страны. поэтому, пожалуйста, КАК Я МОГУ ЗАПОЛНИТЬ МАССИВ ОТФИЛЬТРОВАННЫМИ РЕЗУЛЬТАТАМИ, ЧТОБЫ Я МОГУ ВЕРНУТЬ ЕГО В ПРЕДСТАВЛЕНИЕ С ИСПОЛЬЗОВАНИЕМ JSON? Я хочу использовать ЭТОТ код, который я разместил, так как он был ЕДИНСТВЕННЫМ, который когда-либо работал. Мне просто нужно поменять жестко заданные значения на правильные. вот где у меня проблемы.
пожалуйста, помогите мне.