Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
JQuery UI对话框在index.cshtml中声明时不工作,但在部分视图中工作_Jquery_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

JQuery UI对话框在index.cshtml中声明时不工作,但在部分视图中工作

JQuery UI对话框在index.cshtml中声明时不工作,但在部分视图中工作,jquery,asp.net-mvc,asp.net-mvc-4,razor,Jquery,Asp.net Mvc,Asp.net Mvc 4,Razor,在我的应用程序中,我正在为CRUD使用jQueryUI对话框。对话框声明为: $(document).ready(function () { $.ajaxSetup({ cache: false }); $(".openDialog").on("click", function (e) { e.preventDefault(); $("#dialog-edit").dialog({

在我的应用程序中,我正在为CRUD使用jQueryUI对话框。对话框声明为:

$(document).ready(function () {
        $.ajaxSetup({ cache: false });

        $(".openDialog").on("click", function (e) {
            e.preventDefault();


            $("#dialog-edit").dialog({
                title: 'Add Student',
                autoOpen: false,
                resizable: false,
                height: 'auto',
                width: 650,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,

                open: function (event, ui) {
                    $(this).load("/Projekti/UnosuProjekat")
                },
                close: function (event, ui) {
                    $(this).dialog('close');
                },

                buttons: {
                    "Delete all items": function () {
                        $(this).dialog("close");
                    },
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
            $("#dialog-edit").dialog('open');
            return false;
        });
    });
当我把这段代码放在index.cshtml中,在需要对话框的地方呈现局部视图时,它不起作用。 当我把它放在声明了执行对话框的按钮的局部视图中时,一切正常


这有什么问题?

在索引脚本标记中:

function Initiate_Dialog(){
        $("#dialog-edit").dialog({
            title: 'Add Student',
            autoOpen: false,
            resizable: false,
            height: 'auto',
            width: 650,
            show: { effect: 'drop', direction: "up" },
            modal: true,
            draggable: true,

            open: function (event, ui) {
                $(this).load("/Projekti/UnosuProjekat")
            },
            close: function (event, ui) {
                $(this).dialog('close');
            },

            buttons: {
                "Delete all items": function () {
                    $(this).dialog("close");
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
        $("#dialog-edit").dialog('open');
        return false;
}
在您的ajax.actionlink中


添加ajaxoptions,它允许您在成功时运行javascript。然后调用Initiate_对话框函数

如何渲染局部视图?在运行对话框之前,您可以尝试检查#对话框编辑是否为null或未定义。@Html.Partial(“u Partial”,Model,null)。当我在FF中打开源代码视图时,在这两种情况下都会显示脚本,只是在不在其内部的情况下无法工作_partial…好的,只是必须排除使用ajax的可能性;)正如我提到的,首先尝试检查对话框编辑是否为null或未定义,这可能会解释更多。实际上,我正在使用ajax.actionlink创建“.openDialog”链接,而“#dialog edit”是在“_partial”中声明的空div,因此可以解释它。使用ajax调用时,在点击链接时呈现partialview。它发生在$(document).ready之后。当您在partialview中拥有脚本代码时,它会工作,因为当请求完成时,partialview将进入其“document.ready”状态。