0

トピックで説明されている問題が発生しました。

Kendo UI の dropDownList を使用します

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

AjaxでdataSource(データベースからのデータ)に接続します。

メソッドをビューと同じコントローラーに配置すると、ドロップダウンリストは問題なくデータを取得できるようになりました。しかし、最初は別のコントローラーに配置され、他のビューでそのコントローラーを初期化した場合にのみデータを取得していました。

メソッドは次のとおりです。

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

私が言ったように、アクション メソッドをビューと同じコントローラーにコピーしたので、これは機能するコードです。問題は、別のコントローラーから Json データを取得するときです。

4

1 に答える 1

0

私は問題が何であるかを理解しました。私は最初これに気づきませんでした。[Authorize] 属性を持つコントローラにアクション メソッドを配置し、認可されていない場所からメソッドを呼び出していました。エラーはスローされなかったため、これを見つけるのはかなり困難でした。

于 2014-10-06T12:16:06.000 に答える