【问题标题】:JQuery Ajax server control rendering sitecore issueJQuery Ajax 服务器控件渲染站点核心问题
【发布时间】:2015-07-24 23:49:43
【问题描述】:

我有国家特定的产品。我从谷歌地理定位(javascript)获取用户的位置“状态”。我想将“状态名称”传递给 products.ascx,以便它们按状态显示。我面临的问题是,一旦我从 Google 地理位置获取州名,我就无法在不重新加载页面的情况下发送州名。

1)我尝试在 su 布局 (aspx) 中设置 [webmethod] 并使用 jquery Ajax 调用它,但我不想复制 products.ascx 中的代码或在 Ajax 调用成功后重新加载页面做一个饼干。

2) 我不想重定向到新的 aspx 页面,然后重新加载上一页。

3)MVC 在我的项目中不是一个选项。

无论如何我可以在不重新加载页面的情况下实现此功能吗? 任何建议都非常感谢。

【问题讨论】:

  • 你能解释一下为什么网络方法不合适吗?你说过你试过了,但我不知道你为什么放弃它。
  • 我尝试使用 webmethod 但我不得不重新加载页面,因为基于产品的代码完全在 ascx 文件中。使用 webmethod 我调用了一个新的 aspx 并成功执行了 location.reload 这不是我想要的(location.reload)
  • 听起来您的解决方案结构存在问题。您可以重构产品代码以将其与 ascx 分离吗?如果您更新您的问题以包含您当前拥有的代码,这将使事情变得更容易。
  • 我也不确定 Sitecore 是否有任何关于该问题的具体内容

标签: jquery ajax sitecore ascx


【解决方案1】:

假设每个产品都有一个唯一的 ID,并且您需要这样做,您可以设置一个 Web API 端点,为您提供每个州的适用产品 ID 列表(通过地理定位传递),该列表可通过 Ajax 请求调用。

Web api 可以设置为与 Sitecore 一起使用,这些帖子解释了如何设置:

http://patrickdelancy.com/2013/08/sitecore-webapi-living-harmony/

http://blog.falafel.com/sitecore-configuring-web-api/

完成此设置后,您可以使用 JavaScript 根据状态动态过滤页面上的产品列表。

另一种选择可能是将地理位置信息存储在 cookie 中,然后让 asp.net 在服务器端读取 cookie 的值。然后你可以根据状态过滤产品服务器端。

【讨论】:

    猜你喜欢
    • 2021-02-08
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    相关资源
    最近更新 更多