jquery Webmatrix -跨页面持久化查询字符串

lawou6xi  于 2023-02-18  发布在  jQuery
关注(0)|答案(2)|浏览(128)

我刚刚完成了一个搜索页面的分页设置,但是我遇到了一些问题,因为当我在页面之间点击时,查询字符串(我用来构建我的搜索查询)丢失了。有没有一个简单的方法来持久化它们,或者我需要写一些花哨的javascript来做到这一点?
例如,我可能有一个URL为localhost\search?qstring1=1&qstring2=2的页面
在页面的底部,我有以下代码,它提供了指向我需要持久化这些查询字符串的位置的链接。

for (var i = 1; i < totalPages + 1; i++){
    <li><a href="/search1/@i">@i</a></li>
}
798qvoo8

798qvoo81#

你可以用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)应该有您的页码(默认为page one),并且您的查询字符串应该保持不变。

bf1o4zei

bf1o4zei2#

如果您想在托管代码中执行此操作,则应使用一些查询字符串生成器。您可以在何处访问当前页面查询字符串,根据页面上的不同链接添加/删除键/值对。请在此处选择一个解决方案:http://weblogs.asp.net/bradvincent/archive/2008/10/27/helper-class-querystring-builder-chainable.aspx
例如:

//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();

相关问题