ASP.Net MVC - 如何轻松地将查询结果序列化到数据库?

时间:2010-04-01 03:13:29

标签: asp.net asp.net-mvc linq serialization

我学习ASP.Net MVC时,我一直在研究一个小的房地产搜索引擎。我从各种属性数据库表中获得了结果,并将它们分类为主通用属性响应。搜索表单通过Model Binding传递,效果很好。

现在,我想添加分页。我正在使用.Skip()和.Take()返回当前页面的大块属性,这很有用。我有一个SearchResults模型,它具有分页结果集和各种其他数据,如nextPage和prevPage。

除此之外,我不再将原始形式传递给/ Results / 2。以前我只是隐藏了表格的副本并且每次都做了一次POST,但它似乎不太优雅。我想将结果序列化到我的MS SQL数据库并返回该结果集的唯一键 - 这也有助于“将此查询发送给朋友!”链接。一石二鸟。

是否有一种简单的方法可以获取我拥有的IQueryable结果集,序列化它,将其粘贴到数据库中,返回一个唯一的密钥,然后用所述密钥反转该过程?我目前在MS SQL Express安装上使用Linq to SQL,但在生产中它将在MS SQL 2008上使用。

1 个答案:

答案 0 :(得分:0)

这不会回答您关于保存查询的问题,但这是您需要实现分页。

考虑利用此ASP.NET MVC Paging solution。您可以添加一些扩展方法,一些类,并使用IPagedList<Product>而不是IEnumerable<Product>强烈输入您的观看次数。

编写寻呼机HTML就像这样简单:

<div class="pager">
    <%= Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount) %>
</div>

alt text http://blogs.taiga.nl/martijn/wp-content/uploads/subtext/WindowsLiveWriter/PagingwithASP.NETMVC_D952/aspnetmvc-pager-2_thumb.png