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

时间:2012-03-13 21:23:26

标签: jquery asp.net-mvc asp.net-mvc-3 dynatree

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

Dynatree with ASP.NET MVC

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:2)

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

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

的复选框

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

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

然而,如果用户不修改树的结构,这种方法很有效,因为在这种情况下,名为Children [2] .Children [0] .MyCheckBox的复选框可能会出现在其名称的不同位置建议,那就是它不再是3个孩子的水平,并且可能会变成,例如第5个孩子的第一级...但它的名字不会改变。

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

那说看看TreeView of the Mvc Controls Toolkit(我是项目的协调员)......它已经为你完成了所有工作,你可以为每个节点使用通用模板,也就是说你可以在每个节点中充当你喜欢的东西: