1

我正在使用 MVC 4,我正在尝试在我的视图中使用 AJAX 对话框并在其中加载部分视图。但是当我将布局设置为“~/Views/Shared/_Layout.cshtml”时;ajax 不起作用,而如果我将其设置为 NULL,则 ajax 起作用。请告诉我我做错了什么

ViewBag.Title = "editSurvey";
Layout = null;
}

<html>
<head>

<meta name="viewport" content="width=device-width" />
<title>Edit Questions</title>
<link href="@Url.Content("~/Content/themes/base/minified/jquery-ui.min.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {

        $.ajaxSetup({ cache: false });

        $("#openDialog").live("click", function (e) {
            e.preventDefault();
            var url = $(this).attr('href');

            $("#dialog-edit").dialog({
                title: 'Add Student',
                autoOpen: false,
                resizable: false,
                height: 355,
                width: 400,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                open: function (event, ui) {
                    $(this).load(url);
                },
                close: function (event, ui) {
                    $(this).dialog('close');
                }
            });

            $("#dialog-edit").dialog('open');
            return false;
        });

        $(".editDialog").live("click", function (e) {
            var url = $(this).attr('href');
            $("#dialog-edit").dialog({
                title: 'Edit Customer',
                autoOpen: false,
                resizable: false,
                height: 355,
                width: 400,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                open: function (event, ui) {
                    $(this).load(url);

                },
                close: function (event, ui) {
                    $(this).dialog('close');
                }
            });

            $("#dialog-edit").dialog('open');
            return false;
        });

        $(".confirmDialog").live("click", function (e) {

            var url = $(this).attr('href');
            $("#dialog-confirm").dialog({
                autoOpen: false,
                resizable: false,
                height: 170,
                width: 350,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                buttons: {
                    "OK": function () {
                        $(this).dialog("close");
                        window.location = url;

                    },
                    "Cancel": function () {
                        $(this).dialog("close");

                    }
                }
            });
            $("#dialog-confirm").dialog('open');
            return false;
        });

        $(".viewDialog").live("click", function (e) {
            var url = $(this).attr('href');
            $("#dialog-view").dialog({
                title: 'View Customer',
                autoOpen: false,
                resizable: false,
                height: 355,
                width: 400,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                open: function (event, ui) {
                    $(this).load(url);

                },
                buttons: {
                    "Close": function () {
                        $(this).dialog("close");

                    }
                },
                close: function (event, ui) {
                    $(this).dialog('close');
                }
            });

            $("#dialog-view").dialog('open');
            return false;
        });

        $("#btncancel").live("click", function (e) {
            $("#dialog-edit").dialog('close');

        });
    });
</script>

4

1 回答 1

0

部分视图应该只包含一个 html 标记片段,一旦呈现给浏览器,它将包含在布局标记中。部分不应包含布局中定义的html,head等标签。如果您在设置布局后查看页面的源代码,您可能会看到html已包含在部分中的标记以及其中的所有内容都嵌入到布局的标记中。浏览器将无法加载脚本文件。

解决方案是将您的 jquery 脚本移动到布局文件而不是部分文件中,并从部分视图中去除htmlandhead标记。

于 2013-08-02T10:26:13.270 回答