这是ASP MVC中的常见问题。我有一个简单的搜索表单,包含四个字段和一个搜索按钮。搜索按钮使用jquery用结果填充html表。
问题在于我们也在尝试维护状态,因为在用户转到不同页面然后回击时,我们希望用搜索文本填充搜索字段并重新填充结果。
由于填充调用是Ajax,因此未使用正确的状态重写URL。
是否有ASP MVC首选方法?还是我们坚持做回帖?
答案 0 :(得分:2)
您可以随时根据您正在进行的AJAX搜索更新您的网址。
然后在jQuery的ready事件中,使用存储在URL中的参数进行搜索(如果有); )
因此,一旦用户移动或重新加载书签搜索,taraaaaa!...搜索仍然是:D
更新:我的团队表示在您的网址中使用哈希标记将是最简洁的方法:P
此处>> detecting-back-button-hash-change-in-url<<你会发现信息和一些技巧; )
答案 1 :(得分:1)
一般来说,对于这种操作,回发(实际上并非如此),您只是导航回同一页面,我认为这些项目是GET操作的一部分,所以有没有“帖子”是你不想要的。
原因是您的网址结构变得草率。如果我想为搜索结果添加书签,我该怎么做呢?我不能,因为你决定通过AJAX下载大量内容。
作为一般的经验法则,如果您要将大量内容下载到浏览器中,通常应该有一个URL,因为它本身就是一个资源。
至于维护状态,如果你想这样做而不重写URL(换句话说,当他们转到“/ search”,你想要以前的结果)你可以将表单字段存储在cookie中并填充它来自cookie,或URL中的值,或使用某种数据库来存储首选项。
基本上,每当有人向该页面提交值时,您都会将它们写入数据存储(cookie,文件,数据库等等)。否则,如果在该页面上,您使用用于识别当前用户的任何内容从商店中检索它们。