Javascript 在Epi服务器中通过AJAX请求更新后刷新页面
我有一个具有以下属性的Epi服务器页面模板:Javascript 在Epi服务器中通过AJAX请求更新后刷新页面,javascript,dojo,episerver,Javascript,Dojo,Episerver,我有一个具有以下属性的Epi服务器页面模板: [Display( Name = "Selection Box", GroupName = Global.GroupNames.Contact )] public virtual bool SelectionBox { get; set; } 在我看来,我有这样的想法: @if (PageEditing.PageIsInEditMode) {
[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>
}
@if(PageEditing.PageIsInEditMode)
{
@Html.CheckBoxFor(modelItem=>Model.CurrentPage.SelectionBox,
新的
{
@class=“切换”,
@data_url=url.Action(“UpdatePage”、“DefaultPage”),
})
$(函数(){
$('.toggle').change(函数(){
var self=$(这是);
var url=self.data('url');
var值=self.prop('已检查');
$.ajax({
url:url,
数据:{所选:值},
键入:“POST”,
成功:功能(响应){
警报(响应);
}
});
});
});
}
基本上,当我更改复选框值时,它会将请求发送给控制器并更新页面上的值。我缺少的是,当这种情况成功发生时,我希望重新加载页面,但我找不到方法
我在这里不使用OOTB进行页面编辑,因为我正在寻找一种方法来为编辑器提供一些对组件的辅助编辑,但我不想构建dojo小部件。有什么想法可以让它工作吗?使用Ajax的目的是设计一个不需要重新加载页面的SPA(单页应用程序)。如果您正在寻找重新加载页面,您可能可以这样做
window.location.reload()代码>
但是页面重新加载可能会导致Ajax调用丢失返回的数据。开发人员指南中有一章关于“使用客户端呈现进行页面编辑”,请参阅使用window.location.reload();在success函数中,如果无论何时单击复选框都要重新加载页面,那么您最好使用一个表单,将复选框值发布到UpdatePage
操作方法中,并让它呈现页面。