如何使用Sitecore使用Ajax进行部分页面更新? [英] How can I do a partial page update with ajax using Sitecore?

查看:65
本文介绍了如何使用Sitecore使用Ajax进行部分页面更新?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Web应用程序中有一个由Sitecore布局和许多子布局组成的特定页面(Sitecore内容项)。其中一个子布局是我希望在单击某个按钮后刷新的用户控件。我只希望刷新该子布局,页面的睡觉保持不变(这里是典型的AJAX情况)。当我的所有Sitecore内容项目都直接与Web应用程序中的整个页面(有子布局)相关时,我如何使用Sitecore实现这一点?在我的例子中,我只想使用Ajax返回特定的单个子布局的内容。使用Sitecore处理这种Ajax情况的最佳实践是什么?我正在使用Sitecore 6.5。

推荐答案

有许多选项可用于实现异步行为。所有这些实际上都与Sitecore没有直接关系,但是,有一些Sitecore特定的事情需要注意,我在下面突出显示了

  1. UpdatePanel控件
    如果您正在执行一些微不足道的操作,而超快性能不是问题,只需包装您的按钮(以及您需要的任何其他.NET控件 如更新)中的UpdatePanel Control。你还需要放下 将ScriptManager控件放到靠近内部顶部的基本布局中 <form>元素。注意:使用此方法时,您需要确保您的子布局没有启用缓存,否则您的按钮将无法正确回发

  2. 创建您自己的Web服务
    在此场景中,有许多客户端框架可用于实现相同的结果。我的首选方法是使用jQuery连接到客户端按钮单击事件,准备一个请求对象,然后将其发布到服务器(获取更新客户端所需的信息)。

    以下是许多与Sitecore一起使用的Web服务选项,使您可以访问Sitecore.Context和所有后续Sitecore API。

    1. 创建接受参数作为查询字符串的空ASPX Web表单。在Page_Load方法中,对参数做一些工作,并使用Response.Write()直接写入响应。AJavaScriptSerializer对于序列化到JSON很方便,只需确保设置Response.ContentType = "text/javascript";

    2. 创建ASMX Web Service并使用[WebMethod]修饰您的方法(如果需要访问会话数据,则使用[WebMethod(EnableSession = true)])。

    3. 使用MVC控制器(例如:ASP.NET Web Api)创建API。我认为在Sitecore 6.5中有一些需要解决的问题,如here所述。

这篇关于如何使用Sitecore使用Ajax进行部分页面更新?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆