Передача идентификатора из выбранного элемента в контроллер - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть скрипт в моем представлении для передачи идентификатора из выбранного значения моему контроллеру:

<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
     }));
});

enter image description here

1 Ответ

2 голосов
/ 07 ноября 2019

{Id: selectedGroup} указывает, что вы передаете параметр с именем Id, этот параметр не существует в вашем методе. Либо замените его на {groupId: selectedGroup}, либо измените сигнатуру вашего метода на:

    public ActionResult GetCategories(int Id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...