【问题标题】:Preserve data in MVC在 MVC 中保留数据
【发布时间】:2010-09-22 10:34:27
【问题描述】:

我正在实现一个带有结果页面支持分页的复杂搜索模块。提供的大多数示例只是将 pagenumber 作为 Index 操作的参数传递,并且每次用户点击不同的页码时,该操作都会使用 pagenumber 执行查询。

我的问题是我的搜索需要更多的条件(超过 10 个条件)而不仅仅是简单的页码。因此,我想在用户第一次提交后保留搜索条件或搜索结果数据,这样我只需要来回传递页码。

所以我不知道哪种方式更好:保留搜索条件,所以每次点击新页面时,调用控制器操作再次搜索?或者保存搜索结果数据,这样应用程序就不需要一次次查询数据库,但是保存的数据会很大。如果您有任何想法,如何实施?提前致谢。

【问题讨论】:

  • 是否有实际要求不能在url中显示其余的搜索条件?如果不只是把它放在 url 中(控制器操作)。您会注意到 google、bing、yahoo 等就是这样解决这个问题的。

标签: asp.net-mvc


【解决方案1】:

在查询字符串中保留搜索条件通常是最好的。它将允许用户为搜索添加书签。

保留搜索结果数据会带来潜在的陈旧数据问题并在服务器端消耗更多资源。无论如何,这不适用于大型数据集,因为您一次只能选择一个页面,因此当用户导航到下一页时,在内存中缓存不会有太大帮助。

【讨论】:

  • +1 - 我建议您为每次搜索生成一个唯一键,并使用该唯一键将包含所有搜索条件的对象存储在内存或数据库中。然后在查询字符串上传递唯一键。
【解决方案2】:

/我建议您为每次搜索生成一个唯一键,并使用该唯一键将包含所有搜索条件的对象存储在内存或数据库中。然后在查询字符串上传递唯一键。/

所以你的意思是,在数据库中保存带有唯一键的搜索条件,只要我再次需要搜索结果(包括更改页面索引),从查询字符串中获取唯一键,再次运行查询。那是你的建议,对吧?非常感谢您的建议。很有帮助。

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多