Вызов метода в другом контроллере с использованием ajax не работает должным образом

Я столкнулся с проблемой, как описано в теме.

Я использую dropDownList из Kendo UI

http://demos.telerik.com/aspnet-mvc/dropdownlist/serverfiltering

который соединяется с источником данных (данными из базы данных) с помощью Ajax.

Теперь dropdownList получает данные без проблем, если я помещаю метод в тот же контроллер, что и представление. Но сначала он был помещен в другой контроллер, и я получал данные, только если я инициализировал этот контроллер в другом представлении.

Вот метод:

        public ActionResult GetGroups()
    {
        var list = new List<string>();

        foreach (var item in _repositorySpisGrup.Select())
        {
            list.Add(item.Nazwa);
        }

        return Json(list, JsonRequestBehavior.AllowGet);
    }

Кто-нибудь может сказать мне, почему это так?

И чтобы избежать этой проблемы, куда я должен поместить свой метод действия, который может вызываться из разных точек зрения?

Ура!

РЕДАКТИРОВАТЬ:

Код для раскрывающегося списка (размещен в partView):

            @(Html.Kendo().DropDownList()
            .Name("Group")
            .Value(Model.Group)
            .DataSource(source =>
            {
                source.Read(read =>
                {
                    read.Action("GetGroups", ViewContext.RouteData.GetRequiredString("controller"));
                })
                .ServerFiltering(true);
            })
                )

Как я уже сказал, это рабочий код, потому что я скопировал метод Action на тот же контроллер, что и представление. Проблема в том, что я беру данные Json с другого контроллера.

1 ответ

Я понял, в чем проблема. Сначала я этого не заметил. Метод действия был помещен ранее в контроллер с атрибутом [Authorize], и ​​я вызывал метод из места, где я не был авторизован. Не было выдано никакой ошибки, так что это было довольно трудно найти.

Другие вопросы по тегам