C# ASP.NET MVC剑道UI树状图-数据?

C# ASP.NET MVC剑道UI树状图-数据?,c#,asp.net-mvc,kendo-ui,telerik,C#,Asp.net Mvc,Kendo Ui,Telerik,有人知道如何在ASP.NET MVC中设置剑道树形图的数据吗? 我有一个这样的列表(C#list): 以下是演示站点()的cshtml部分: 在哪里可以设置值 提前谢谢这是个好问题。该演示没有显示用于填充数据的控制器方法。我打赌它使用的是hierarchycalDataSource,它支持任何具有自引用集合属性的自定义名称/值类。我想你需要下载演示来看看演示中的控制器在做什么,不过,我会为你尽我最大的努力。一旦知道签名,服务器绑定实际上非常简单。这里,我假设Items属性是父级和子级之间的递归关

有人知道如何在ASP.NET MVC中设置剑道树形图的数据吗? 我有一个这样的列表(C#list):

以下是演示站点()的cshtml部分:

在哪里可以设置值


提前谢谢

这是个好问题。该演示没有显示用于填充数据的控制器方法。我打赌它使用的是
hierarchycalDataSource
,它支持任何具有自引用集合属性的自定义名称/值类。我想你需要下载演示来看看演示中的控制器在做什么,不过,我会为你尽我最大的努力。一旦知道签名,服务器绑定实际上非常简单。这里,我假设Items属性是父级和子级之间的递归关系。在这种情况下,国家-州-城市

有一个jQuery示例使用了
HierarchycalDataSource
,但是,您不需要使用该方法

如果您的数据不是分层的,那么您只需发送一个简单的名称/值对列表,并删除TreeMap ui配置中的Model属性即可

模型:

public class MyModel
{
    public string Name{ get; set; }
    public int Value{ get; set; }
    List<MyModel> Items{get;set;}
}

这就是我需要的-非常感谢!!
@(Html.Kendo().TreeMap()
      .Name("treeMap")
      .DataSource(dataSource => dataSource
          .Read(read => read
              .Action("_PopulationUSA", "TreeMap")
          )
          .Model(m => m.Children("Items"))
      )
      .ValueField("Value")
      .TextField("Name")
      .HtmlAttributes(new { style = "height:600px; font-size: 12px;" })
)
public class MyModel
{
    public string Name{ get; set; }
    public int Value{ get; set; }
    List<MyModel> Items{get;set;}
}
public class MyController : Controller
{
    [OutputCache(NoStore = true, Duration = 0)]
    public ActionResult GetMyTreeMapData(int someID, [DataSourceRequest] DataSourceRequest request)
    {
        List<MyModel> items = new List<MyModel>();
        items=SomeMethodToRecursivelyFillYourParentAndChildren();
        return Json(items.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
    }
}
@(Html.Kendo().TreeMap()
      .Name("treeMap")
      .DataSource(dataSource => dataSource
          .Read(read => read
              .Action("GetMyTreeMapData", "MyController")
          )
          .Model(m => m.Children("Items"))
      )
      .ValueField("Value")
      .TextField("Name")
      .HtmlAttributes(new { style = "height:600px; font-size: 12px;" })
)