使用ajax无法正常工作的不同控制器中的调用方法

时间:2014-10-06 10:25:55

标签: asp.net-mvc kendo-asp.net-mvc kendo-dropdown

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

我使用来自Kendo UI的dropDownList

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

使用Ajax连接dataSource(数据库中的数据)。

现在,如果我将方法放在与视图相同的控制器中,dropdownList正在获取数据而没有任何问题。但最初它被放置在另一个控制器中,只有在我在其他视图中初始化该控制器时才获取数据。

以下是方法:

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

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

        return Json(list, JsonRequestBehavior.AllowGet);
    }

有谁可以告诉我为什么会这样?

为了避免这个问题,我应该在哪里放置可以从许多不同视图调用的动作方法?

干杯!

编辑:

下拉列表的代码(放在partialView中):

            @(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 个答案:

答案 0 :(得分:0)

我弄清楚问题是什么。起初我没有注意到这一点。操作方法之前放在具有[Authorize]属性的控制器中,我从未经授权的地方调用该方法。没有抛出任何错误,所以很难找到。