Asp.net mvc 使用ajax在不同控制器中调用方法无法正常工作

Asp.net mvc 使用ajax在不同控制器中调用方法无法正常工作,asp.net-mvc,kendo-asp.net-mvc,kendo-dropdown,Asp.net Mvc,Kendo Asp.net Mvc,Kendo Dropdown,我遇到了主题中描述的问题 我使用剑道UI中的dropDownList 它使用Ajax连接数据库中的数据源数据 现在,如果我将方法与视图放在同一个控制器中,dropdownList将毫无问题地获取数据。但最初它被放置在另一个控制器中,只有在其他视图中初始化该控制器时,我才能获取数据 方法如下: public ActionResult GetGroups() { var list = new List<string>(); for

我遇到了主题中描述的问题

我使用剑道UI中的dropDownList

它使用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);
    }

就像我说的,这是一个有效的代码,因为我将动作方法复制到了与视图相同的控制器上。问题是当我从另一个控制器获取Json数据时。

我发现了问题所在。一开始我没有注意到这一点。动作方法之前被放置在一个拥有[Authorize]atribute的控制器中,我在一个未经授权的地方调用该方法。没有抛出任何错误,因此很难找到它。

下拉列表的代码是什么?使用read.ActionGetGroups,Controller2;时它不起作用?使用Fiddler验证您的ajax请求。您的操作方法一切正常。检查生成的ajaxurl+ajaxrequest@nZeus嗯。。。我知道问题出在哪里了。一开始我没有注意到这一点。动作方法之前被放置在一个拥有[Authorize]atribute的控制器中,我在一个未经授权的地方调用该方法。好人们从错误中学习。无论如何,谢谢你的帮助:啊,好的。我认为你应该为你的问题贴出答案,并将其标记为答案
            @(Html.Kendo().DropDownList()
            .Name("Group")
            .Value(Model.Group)
            .DataSource(source =>
            {
                source.Read(read =>
                {
                    read.Action("GetGroups", ViewContext.RouteData.GetRequiredString("controller"));
                })
                .ServerFiltering(true);
            })
                )