首页 > 解决方案 > 在 Epi Server 中通过 AJAX 请求更新后刷新页面

问题描述

我有一个具有以下属性的 Epi 服务器页面模板:

        [Display(
            Name = "Selection Box",
            GroupName = Global.GroupNames.Contact
        )]
        public virtual bool SelectionBox { get; set; }

在视图中我有这样的东西:

@if (PageEditing.PageIsInEditMode)
{

    @Html.CheckBoxFor(modelItem => Model.CurrentPage.SelectionBox,
        new
        {
            @class = "toggle",
            @data_url = Url.Action("UpdatePage", "DefaultPage"),
        })


    <script>
        $(function () {
            $('.toggle').change(function () {
                var self = $(this);
                var url = self.data('url');
                var value = self.prop('checked');

                $.ajax({
                    url: url,
                    data: { selected: value },
                    type: 'POST',
                    success: function (response) {
                        alert(response);
                    }
                });
            });
        });
    </script>
}

基本上它的作用是,当我更改复选框值时,它会向控制器发送请求并更新页面上的值。我缺少的是,当这种情况成功发生时,我想重新加载页面,但我找不到办法。

我没有在此处的页面编辑中使用 OOTB,因为我正在寻找一种方法来为编辑器提供对组件的一些高级编辑,但我不想构建一个 dojo 小部件。任何想法如何使这项工作?

标签: javascriptdojoepiserver

解决方案


开发者指南中有“使用客户端渲染进行页面编辑”一章,参见https://world.episerver.com/documentation/developer-guides/CMS/editing/on-page-editing-with-客户端渲染/


推荐阅读