我刚刚在我的一个搜索页面上设置了分页,但是我遇到了问题,因为当我在页面之间点击时,查询字符串(我用来构建我的搜索查询)会丢失。有没有一种简单的方法来持久化它们,还是我需要写一些花哨的javascript来做到这一点?
例如,我的网页可能包含以下网址localhost \ search?qstring1 = 1& qstring2 = 2
在页面底部,我有以下代码,它提供了我需要保存这些查询字符串的链接。
for (var i = 1; i < totalPages + 1; i++){
<li><a href="/search1/@i">@i</a></li>
}
答案 0 :(得分:3)
您可以使用Request.QueryString
访问当前查询字符串。像这样的东西应该做的伎俩:
for (var i = 1; i < totalPages + 1; i++) {
<li><a href="/search/@i?@Request.QueryString">@i</a></li>
}
您的链接最终应如下所示:
/search?x=1&y=2
/search/2?x=1&y=2
/search/15?x=1&y=2
UrlData[0].AsInt(1)
应该有您的页码,默认为第一页,您的查询字符串应该保留。
答案 1 :(得分:2)
如果要在托管代码中执行此操作,则应使用某些queyrstring构建器。您可以在哪里访问当前页面查询字符串,根据页面上的不同链接添加/删除键/值对。请在此处查看一个解决方案:http://weblogs.asp.net/bradvincent/archive/2008/10/27/helper-class-querystring-builder-chainable.aspx
e.g:
//create a querystring from the current URL, add 'id','user' and 'sessionId' values and remove an 'action' value
//output : "?id=123&user=brad&sessionId=ABC"
string strQuery = QueryString.Current.Add("id", "123").Add("user", "brad").Add("sessionId", "ABC").Remove("action").ToString();