C# Treeview(剑道UI)与同一页面上的文本框MVC4中的最佳实践?
假设我有一个Kendo treeview绑定到远程数据源的视图C# Treeview(剑道UI)与同一页面上的文本框MVC4中的最佳实践?,c#,asp.net-mvc,asp.net-mvc-3,telerik-mvc,kendo-ui,C#,Asp.net Mvc,Asp.net Mvc 3,Telerik Mvc,Kendo Ui,假设我有一个Kendo treeview绑定到远程数据源的视图 @(Html.Kendo().TreeView() .Name("schemas") .DataTextField("name") .DataSource(dataSource => dataSource.Read(read => read.Action("Schemas", "Forms"))) .Events(events => events .Select("onSel
@(Html.Kendo().TreeView()
.Name("schemas")
.DataTextField("name")
.DataSource(dataSource => dataSource.Read(read => read.Action("Schemas", "Forms")))
.Events(events => events
.Select("onSelected")))
所以树视图只是在我的FormsController中调用Schemas操作
同样在同一页上,我有一个表单,它只是一个文本框和一个提交表单的按钮
@using (Html.BeginForm("Load", "Forms", FormMethod.Post))
{
<div id="rootNode">
@Html.TextBox("rootElementName")
@Html.Button("next")
</div>
}
所以我想知道处理用户输入并将其传递给FormsController的加载操作的最佳方法是什么?用户应在树视图中选择一个选项,并在文本框中输入值。
或者我应该为我的视图创建某种类型的viewmodel,将我的所有节点都放在里面,并为文本框输入和所选节点创建两个附加字段?我会取出表单元素,留下:
<div id="rootNode">
@Html.TextBox("rootElementName")
@Html.Button("next")
</div>
在下面的js中,这将在select上获取树项目id。
第二个函数将使用参数调用窗体控制器操作
<script>
var selectedNodeid;
//get the tree selected item id
function onSelected(e) {
var data = $('#schemas).data('kendoTreeView').dataItem(e.node);
selectedNodeid = data.id;
}
//button on click event
$(document).ready(function () {
$("#next")
.bind("click", function () {
//get parameters then pa
var id = selectedNodeid;
var rootElementName = $('#rootElementName).val()
$.ajax({
url: "Form/Load",
data:{id:id,rootElementName:rootElementName},
success: function () { }
});
}
})
</script>
我还没有测试过,但应该很接近。
我期待有人加入一个更好的方法 好的,但是如何从加载操作返回并显示视图?是否要重定向到视图或在当前页面中将其显示为部分?