У меня есть скрипт в моем представлении для передачи идентификатора из выбранного значения моему контроллеру:
<script type="text/javascript">
$('#Group').change(function () {
var selectedGroup = $("#Group").val();
var categoriesSelect = $('#Category');
categoriesSelect.empty();
if (selectedGroup != null && selectedGroup != '') {
$.getJSON('@Url.Action("GetCategories")', { Id: selectedGroup }, function (categories) {
if (categories != null && !jQuery.isEmptyObject(categories))
{
categoriesSelect.append($('<option/>', {
value: null,
text: ""
}));
$.each(categories, function (index, category) {
categoriesSelect.append($('<option/>', {
value: category.Value,
text: category.Text
}));
});
};
});
}
});
</script>
Это функция моего контроллера:
[HttpGet]
public ActionResult GetCategories(int groupId)
{
//...
}
ВыборСобытие change работает, но параметр groupId, который отправляется с запросом Get, всегда равен 0. Что я забыл?
Обновление Ответ от cjp добился цели.
Мой второй вопрос, теперь фильтрация работает, я сталкиваюсь с другой вещью ... я новичок в javascript, но когда я изменяю выбранное, я вижу правильное количество во втором DropDownList, но пустой, текст не отображается ..
[HttpGet]
public ActionResult GetCategories(int groupId)
{
return Json(GetCategoriesByGroupId(groupId)/*, JsonRequestBehavior.AllowGet*/);
}
Что с этим не так?
$.each(categories, function (index, category) {
categoriesSelect.append($('<option/>', {
value: category.Value,
text: category.Text
}));
});