2

当我想用 ajax 更新我的值时,我在我的页面中使用编辑器我收到此错误:未捕获的类型错误:将循环结构转换为 JSON

这是我的观点:

@{
    Layout = null;
}

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Edit</title>

    <script type="text/javascript">
        $(function () {
            $("#editor").kendoEditor({
                value: "@Html.Raw(Model.Content)"
            });
            $("#back").click(function () {
                $.get('@Url.Action("Index", "Editor")', { siteId: "@ViewBag.SiteId", widgetId: "@Model.WidgetId" },
                              function (data) {
                                  $("div[data-role='popup']").remove();
                                  var indexContent = $(data).find("#content");
                                  $(indexContent).fadeIn(101);
                                  $("#content").replaceWith(indexContent);
                              });


            });
            var content = $("#editor").data("kendoEditor");
            $("#save").click(function () {
                var editor = {
                    Id: 1,
                    Content: content,
                    Title: 1,
                };

                $.ajax({
                    url: '@Url.Action("Update", "Editor")',
                    type: "POST",
                    contentType: "application/json charset=UTF-8",
                    dataType: "json",
                    data: JSON.stringify(editor),

                });
    });
        });
    </script>
</head>
<body>
    <div id="editorContainer">
        <div id="editorContent">
            <input type="text"  value="@Model.Title" style="width:300px" id="title"/>
            <textarea id="editor" rows="10" cols="30" style="width: 740px; height: 440px">
</textarea>
        </div>


    </div>
    <button id="save">ذخیره</button>
    <button id="back">بازگشت</button>
</body>
</html>

在我看来,我使用 jquery ajax 发布值,但出现错误。

4

2 回答 2

1

您不能 JSON 序列化包含循环引用的对象层次结构。JSON 格式根本不支持这一点。您应该使用视图模型并打破对象中存在的循环依赖关系。

于 2012-10-19T07:16:46.767 回答
0
saveButton.click(function () {
                var model = {
                    Id: '@Model.Id',
                    Content: editor.data("kendoEditor").encodedValue(),
                    Title: $('#title').val(),
                };

                $.ajax({
                    url: '@Url.Action("Update", "Editor")',
                    type: "POST",
                    contentType: "application/json charset=UTF-8",
                    dataType: "json",
                    data: JSON.stringify({ editor: model, siteId: '@ViewBag.siteId' }),
                        success: function () {
                            alert('تغییرات مورد نظر با موفقیت اعمال شد.');
                            //window.parent.document.location.replace('@Url.Action("SiteIndex", "Editor")?' + parametrs);
                         },
                    error: function () {
                        alert('متاسفانه خطایی در سیستم رخ داد،دوباره تلاش کنید.');
                    }
                });
            });

这是对的

于 2012-10-23T19:36:10.840 回答