0

jstree を使用して、プロジェクトでカテゴリとサブカテゴリのメニューを作成しています。しかし、jstree形式でデータを取得または表示しません。それで、問題は何ですか。助けてください。ありがとう....

私のコントローラーコード

   [HttpGet]
    public JsonResult GetCatList()
    {
        IEnumerable<Category> cats = _CategoryBusiness.Select();
        return new JsonResult
        {
            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
            Data = cats
        };
    }

私のモデルクラス

[Serializable]
public class Category
{
    [Key]
    [DisplayName("Id")]
    public int CategoryID { get; set; }

    public string CategoryName { get; set; }

    public int? SubCategoryID { get; set; }
    [ForeignKey("SubCategoryID")]
    public virtual Category SubCategory { get; set; }
}

そして _CategoryBusiness.Select() は

public List<Category> Select(int id = 0)
    {
        var selectFrom = _Ctx.Categories.Select(a => a);
        var query = selectFrom.Select(a => a);

        if(id > 0)
            query = query.Where(a => a.CategoryID == id);


        return query.ToList();
    }

マイビューページのコードは

<script type="text/javascript">
$(function () {
    FillJSTree();
});
function FillJSTree() {
    $("#onflycheckboxes").jstree({
        json_data: {
            "ajax": {
                "url": "/Categories/GetCatList/",
                "type": "GET",
                "dataType": "json",
                "contentType": "application/json charset=utf-8",
            }
        },
        //checkbox: {
        //    real_checkboxes: true,
        //    checked_parent_open: true
        //},
        plugins: ["themes", "json_data", "ui"]
    });
}
</script>

. . . . ..

  <div id="onflycheckboxes">
  </div>
4

1 に答える 1

0

これを試してください: ビューにデータを送信する前に、データをシリアル化します。これは私にとってはうまくいきます。Ps カテゴリ データはツリー ノードである必要があります。

[HttpGet]
public string GetCatList()
{
    IEnumerable<Category> cats = _CategoryBusiness.Select();
    string myjsonmodel = new JavaScriptSerializer().Serialize(cats);
    return myjsonmodel;
}
于 2013-08-05T09:22:28.590 に答える