我正在为我的项目开发标准的分页组件。所有具有分页的控制器都在等待URL中的PageIndex参数。
所以我想根据当前URL生成URL,除了PageIndex参数。
例如,我为制造商和MaxPrice之类的互联网商店提供了过滤器。
用户打开mystore.com/products?manufacturer=Apple&MaxPrice=999
链接。
然后,他想转到3页。因此,我的分页中的3页链接应具有mystore.com/products?manufacturer=Apple&MaxPrice=999&PageIndex=3
链接。
因此所需的MVC功能应:
我尝试使用以下代码:
<a class="page-link" href="@Url.RouteUrl(new { PageIndex = page })">
@page
</a>
除了2条规则外,它都可以正常工作-它不会保留其他参数。
因此,如果用户单击此链接,他将转到mystore.com/products?PageIndex=3
答案 0 :(得分:1)
我建议通过获取带有查询字符串“ Request.Url.AbsoluteUri”的currentUrl来动态构建URL,然后从URL中删除pageIndex(如果存在),然后再次添加页面索引。
提示:必须在剃须刀中将url定义为变量,以简化操作
要删除查询字符串,可以使用正则表达式
string queryString = "Default.aspx?Agent=10&Language=2"; //Request.QueryString.ToString();
string parameterToRemove="Language"; //parameter which we want to remove
string regex=string.Format("(&{0}=[^&\s]+|{0}=[^&\s]+&?)",parameterToRemove);
string finalQS = Regex.Replace(queryString, regex, "");
答案 1 :(得分:0)
您可以使用它们来获取当前网址
*funcargs
然后您可以像这样添加页面索引并重定向到该URL
*args
推荐
或者您可以使用
获取url参数。string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TEST/Default.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TEST/Default.aspx
并使用这些值在视图内构建新的URL