Временное решение, которое я испытываю, пока не получу отличный ответ ...
Я обновил свой CSHTML, чтобы использовать данные asp-all-route-data.
@{
var nextParms = new Dictionary<string, string>();
int x = 0;
nextParms.Add("pageIndex", (Model.Mini.PageIndex + 1).ToString());
foreach (string item in Model.CurrentFilter)
{
nextParms.Add("SearchString" + x, item);
x++;
}
}
<a asp-page="./Index"
asp-all-route-data="nextParms"
class="btn btn-default">
Next
</a>
, тогда я восстанавливаю CurrentFilter, если у меня есть метод CurrentFilterN и нет метода CurrentFilter в моем методе OnGet.
if (CurrentFilter !=null && CurrentFilter .Count()>0)
{
//Logic if CurrentFilter exists as normal
}
else
{
List<string> SearchList = new List<string>();
foreach (var key in HttpContext.Request.Query)
{
if (key.Key.Contains("SearchString"))
{
SearchList.Add(key.Value);
string IndividualTag = key.Value;
}
//Same logic as above
}
CurrentFilter = SearchList.ToArray();
}
Таким образом, если пользователь использует множественный выбор, CurrentFilter устанавливается правильно.Если они нажимают следующее, SearchString0, SearchString1, ..., SearchStringN передаются в строке запроса, которая анализируется в CurrentFilter.
Чувствует себя хакером, но работает.