【问题标题】:use AJAX in ASP.NET Web Forms, but leave the URLs在 ASP.NET Web 窗体中使用 AJAX,但保留 URL
【发布时间】:2012-04-15 07:49:06
【问题描述】:

我有一个 ASP.NET Web 窗体网站。它在母版页中有一个页面。此页面上有很多项目可以进行回发,但使用不同的 GET 参数。例如,我在http://mysite/mypage?p=1,然后我单击某个项目并转到http://mysite/mypage?p=2,依此类推。很明显,母版页并没有改变,唯一改变的是URL和页面内容,所以实际上没有必要做一个完整的回发。因此,我想重写页面以执行部分​​ AJAX 样式的回发并更改 URL(我希望用户能够制作书签并进行适当的浏览器历史导航)。但是我该怎么做呢?

例如,我可以使用 UpdatePanel,我可以让所有项目成为某种按钮,执行回发操作,而不是执行页面导航的超链接。但是我的 URL 将保持不变,这很糟糕。

我更喜欢使用 UpdatePanel 控件或 jQuery 库的答案,但使用其他技术的答案也很好,因为它们可能会给我解决问题的提示。

【问题讨论】:

    标签: jquery ajax url-rewriting updatepanel webforms


    【解决方案1】:

    实现此目的的唯一方法是在 URL 中使用“#”时动态加载内容。例如,http://mysite/mypage#1http://mysite/mypage#2。这使得能够在执行 AJAX 类型功能时按需更改 URL 而无需重定向。该 URL 也可以添加书签。

    当然,当部分回发发生时,您需要编写一些 Javascript 来解析 # 之后的字符或某种类型的事件侦听器以传递不同的参数。

    我已经实施了几次,这是我所知道的唯一可以解决您遇到的问题的方法。 Twitter 在当时有点灵感。

    【讨论】:

    • 感谢您的回答,我会尝试的。如果明天我不能得到更好的答案,那么我会接受这篇文章作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多