我遇到了主题中描述的问题。
我使用来自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数据时。
答案 0 :(得分:0)
我弄清楚问题是什么。起初我没有注意到这一点。操作方法之前放在具有[Authorize]属性的控制器中,我从未经授权的地方调用该方法。没有抛出任何错误,所以很难找到。