ASP.NET核心MVC-在不丢失现有查询参数的情况下,向现有URL添加额外的路由参数



我正试图在我的项目中进行基于偏移量的分页,但遇到了一个问题。因此,我有一个链接,可以根据页码将用户重定向到特定页面(在这种情况下为I-(:

<a class="page-link" asp-route-pageNumber="@i"> @i </a>

但问题是,如果我想首先过滤我的表,例如userStatusACTIVE(在我的情况下为1(,并且我已经分配了tableSize(仅显示5行(,我的URL将如下所示:

localhost:8080/users/?tableSize=5&userStatus=3

现在,如果我想转到第二个页面,该页面与URL上方的锚链接相同,则会覆盖,并且我的userStatustableSize查询参数都不存在,只有pageNumber

localhost:8080/users/?pageNumber=2

如何使链接仅将pageNumber添加到现有URL作为查询参数,并在单击另一个页码链接时增加其值,如下所示:

localhost:8080/users/?tableSize=5&userStatus=3&pageNumber=2

我不想使用jQuery或JavaScript,但如果这是唯一或更好的方式,请随意分享!

当我点击特定的页码时,我试图使用JavaScript来触发点击事件,但这没有正常工作,因为每次我点击链接时,函数都会向URL添加另一个pageNumber参数,如果我首先检查URL,如果pageNumber存在,那么查询参数的值将混乱不堪。

如果您的当前url是localhost:8080/xxx/?tableSize=5&userStatus=3,并且您想将tableSizeuserStatus的值添加到<a class="page-link" asp-route-pageNumber="@i"> @i </a>。您可以尝试以下代码:

@{
string tableSize= Context.Request.Query["tableSize"].ToString();
string userStatus= Context.Request.Query["userStatus"].ToString();
}
<a class="page-link" asp-route-pageNumber="@i" asp-route-tableSize=@tableSize asp-route-userStatus=@userStatus> @i </a>

相关内容

最新更新