Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道UI窗口不会打开具有布局的视图_Javascript_Asp.net Mvc_Razor_Kendo Ui_Kendo Ui Mvc - Fatal编程技术网

Javascript 剑道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错

我正在使用KendoUI for MVC,试图打开一个Kendo UI窗口,加载其内容,如下所示:

.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>