Javascript 剑道UI窗口不会打开具有布局的视图
我正在使用KendoUI for MVC,试图打开一个Kendo UI窗口,加载其内容,如下所示:Javascript 剑道UI窗口不会打开具有布局的视图,javascript,asp.net-mvc,razor,kendo-ui,kendo-ui-mvc,Javascript,Asp.net Mvc,Razor,Kendo Ui,Kendo Ui Mvc,我正在使用KendoUI for MVC,试图打开一个Kendo UI窗口,加载其内容,如下所示: .LoadContentFrom("Edit", "CustomerContact") .Events(events => events.Open("centerWindow")) 当Edit.cshtml视图使用my_DialogLayout.cshtml时,它将不会加载。当Edit.cshtml视图的Layout=null时,窗口将正常加载 单击打开对话框时出现的JavaScript错
.LoadContentFrom("Edit", "CustomerContact")
.Events(events => events.Open("centerWindow"))
当Edit.cshtml视图使用my_DialogLayout.cshtml时,它将不会加载。当Edit.cshtml视图的Layout=null时,窗口将正常加载
单击打开对话框时出现的JavaScript错误是:
未捕获的TypeError:无法读取未定义的属性“open”
以下是我的javascript:
.Events(Events=>Events.Open(“centerWindow”))
$(文档).ready(函数(){
$(“#BtnewContact”)
.bind(“单击”),函数(){
$(“#windowContact”).data(“kendoWindow”).open();
});
});
功能中心窗口(e){
e、 sender.center();
}
为什么Edit.cshtml使用_DialogLayout.cshtml视图时会发生错误?该视图是_Layout.cshtml的精简版本。当我创建一个没有布局的视图时,它可以完全正常工作。检查_DialogLayout.cshtml是否第二次包含jQuery(通常在底部)。如果是这样,您需要将其删除。它取代了当前的jQuery版本,因此,您正在使用
.data(“kendoWindow”)
访问的数据缓存是空的。Hmm这是可行的,但对我来说没有意义。您能解释一下吗?我有两个布局_Layout.cshtml和_DialogLayout.cshtml。如果根本不涉及布局,它会产生怎样的干扰?是否因为加载了父页面,所以从技术上讲,父页面中的脚本已经存在于_Layout.cshtml中?如果是这种情况,我想我应该从_DialogLayout.cshtml中删除所有脚本/样式。对我来说,这听起来像是在编辑页面本身包含jQuery和其他LIB,但我不知道你的模板是什么样子;如果使用DialogLayout,jQuery将出现两次;如果Layout=null,我认为Layout.cshtml不会被包括在内;您只需要确保jQuery只存在一次,并且在剑道库之前;无论它是包含在布局中还是其他地方都不重要
<script>
$(document).ready(function () {
$("#btnNewContact")
.bind("click", function () {
$("#windowContact").data("kendoWindow").open();
});
});
function centerWindow(e) {
e.sender.center();
}
</script>