まず私の英語で申し訳ありません。ASP.NET MVC4 の KendoUI TreeView コントロールに問題があります。
<div class="treeview-back">
@(Html.Kendo().TreeView()
.Name("treeview-left")
.DragAndDrop(true)
.Events(ItemAction)
.BindTo(Model)
)
ツリービューとバインドされたイベント OnDrop を取得しました。
function OnDrop(e) {
dropped = GetValueFromTags(e.destinationNode.innerHTML);
inDrag = !inDrag;
OnHover();
e.setValid(e.valid && id > 10000);
if (e.valid && id > 10000) {
var webMethod = "/Sitemap/UpdateData";
var data = $("div.treeview-back").find("span.items").text();
//var data = $("div.treeview-back").data("kendoTreeView").dataSource.data();
console.log(data);
$.ajax({
type: "POST",
url: webMethod,
data: data,
contentType: "application/json",
dataType: "json",
converters: {
'text json': true
},
success: function(data) {
},
error: function(data) {
console.log("error: " + data);
}
});
}
}
そしてコントローラーでの私の行動:
[HttpPost]
public ActionResult UpdateData(IEnumerable<TreeViewItemModel> data)
{
// some database operations here
return Json(data);
}
ツリービューの現在の状態をアクションに送りたいと思います。問題は、現在のメソッドが null を送信していることです。データソースを送信できましたが、それは元のデータ (開始時に制御するもの) であり、現在のものではありません。
助けてくれてありがとう、Łukasz