0

Telerik TreeView ControlでAsp.Net MVCの問題が発生しています。ツリービューの項目は、テキストを「未定義」として表示しています。

下の画像をご覧ください。Asp.Net MVCコアTelerik TreeViewのテキストが未定義の場合

TreeView Error
ビュー

<div class="col-md-5"> 
     @(Html.Kendo().TreeView() 
     .Name("treeviewOrgHierarchy") 
     .DataTextField("Name") 
     .DataSource(dataSource => dataSource 
      .Read(read => read 
       .Action("Hierarchies", "OrgHierarchy") 
      ) 
     ).Deferred() 
     ) 
    </div> 


コントローラ

public JsonResult Hierarchies(int? id) 
     { 
      IEnumerable<TreeViewItemViewModel> items = null; 
      if(id.HasValue) 
      { 
       items = hierarchyService.GetChildHierarchies(id.Value).Select(x => new TreeViewItemViewModel { HasChildren = x.HasChildren, Id = x.Id, Name = x.Name }); 
      } 
      else 
      { 
       var rootItem = hierarchyService.GetRootHierarchy(); 
       items = new List<TreeViewItemViewModel> { new TreeViewItemViewModel { Id = rootItem.Id, Name = rootItem.Name, HasChildren = rootItem.HasChildren } }; 
      } 

      return Json(items); 
     } 

私はすでに以下試してみましたが、同じ結果。

.DataTextField("item.Name") 

どのような助けも非常に認められます。

答えて

0

return Json(items, JsonRequestBehavior.AllowGet); 
+0

[so]へようこそ!なぜ、どのように機能しますか?これ以上の説明がなければ、これはコメントではない – jpaugh

0

を試してみてください最後に、私はここに犯人がコードの下の作品だった、問題を発見しました。

.DataTextField("Name") 

JSONは、サーバから返さ

[{"id":1,"name":"Root Item","hasChildren":true}] 

の下にここでの問題は、フィールド名、JSONシリアライザは、実際に「名前」にキャメルケース、「名前」にフィールド名を変換されたようです。その結果、JavaScriptは大文字と小文字が区別されるため、「名前」という名前のフィールドはありませんでした。 は、だから私は

.DataTextField("name") 

にコードを変更しているとそれは私のために働きました。

関連する問題