dynatree + asp.net mvc – 如何将数据发回服务器?

我正在使用asp.net mvc 3并且可能正在使用dynatree。 我仍处于研究页面,并在开始实际实施之前试图找出一些悬而未决的问题。

Dynatree与ASP.NET MVC

我一直在看上面的post以及@Matt Penner如何呈现他的树视图,而我的opion看起来比接受的答案更清晰。

我有一个问题是你如何将选中的选项发布到服务器? 当它被渲染时,似乎所有的子弹标记都被转换为看起来像复选框。

所以我想知道如何序列化这些数据? 现在我有一个表单,当用户点击提交时,我做了一个jquery serializeArrary并通过ajax将它发送到服务器,在那里它被绑定到我的View Model。

如何在树视图中选择的选项中执行此操作?

我也不清楚如何根据Matt Penner的示例使用默认的检查节点渲染树视图。

谢谢

Matt Penner呈现树的方式更简单,更清晰……但由于ha没有构建表示树数据的“模型”,因此使用他的方法回读树是不容易的。 必须将树读回“模型”,并且因为它是树,所以这个模型必须是递归的,如第一个例子中所示。

但是,如果您为复选框指定了足够的名称,则可以将其读回。 事实上,post上的模型绑定是通过使用名称约定来完成的,例如一个名为的复选框:

儿童[2]。儿童[0] .MyCheckBox

将在以下内容中回读:第三个孩子第一级=>第一个孩子第二级模型,你必须建立一个分层模型来接收发布的数据。

但是,如果用户不修改树的结构,这种方法效果很好,因为在这种情况下,名为Children [2] .Children [0] .MyCheckBox的复选框可能会出现在其名称所暗示的不同位置,即是不是更多的3个孩子的水平,并可能成为,例如第5个孩子的第一级…但它的名字不会改变。

另一方面,如果您在客户端上序列化数据,然后将它们以json的forms发送到服务器,您将能够同时考虑树的修改。

那说看看Mvc Controls Toolkit的TreeView (我是项目的协调员)……它已经为你完成所有工作了,你可以为每个节点使用通用模板,也就是说你可以放置你喜欢每个节点: