[英]ASP.NET Core Razor Pages multiselect input and pagination
我正在關注ASP.NET Core Razor Pages的官方Microsoft教程,並且正在調整位於此處的分頁部分以適合我的網站。
public async Task OnGetAsync(string sortOrder,
string currentFilter, string searchString, int? pageIndex)
{
CurrentSort = sortOrder;
NameSort = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
DateSort = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null)
{
pageIndex = 1;
}
else
{
searchString = currentFilter;
}
CurrentFilter = searchString;
IQueryable<Student> studentIQ = from s in _context.Student
select s;
if (!String.IsNullOrEmpty(searchString))
{
studentIQ = studentIQ.Where(s => s.LastName.Contains(searchString)
|| s.FirstMidName.Contains(searchString));
}
switch (sortOrder)
{
case "name_desc":
studentIQ = studentIQ.OrderByDescending(s => s.LastName);
break;
case "Date":
studentIQ = studentIQ.OrderBy(s => s.EnrollmentDate);
break;
case "date_desc":
studentIQ = studentIQ.OrderByDescending(s => s.EnrollmentDate);
break;
default:
studentIQ = studentIQ.OrderBy(s => s.LastName);
break;
}
int pageSize = 3;
Student = await PaginatedList<Student>.CreateAsync(
studentIQ.AsNoTracking(), pageIndex ?? 1, pageSize);
}
對於我的網站,相當於SearchString
是一個多選選擇框。 這將作為字符串數組傳遞到頁面。 我找不到任何有關如何將其格式化為適用於普通字符串的鏈接的cshtml部分的文檔。
本質上,我需要獲取下面的asp-route-currentFilter才能處理字符串數組。
<a asp-page="./Index"
asp-route-sortOrder="@Model.CurrentSort"
asp-route-pageIndex="@(Model.Student.PageIndex - 1)"
asp-route-currentFilter="@Model.CurrentFilter"
class="btn btn-default @prevDisabled">
Previous
</a>
<a asp-page="./Index"
asp-route-sortOrder="@Model.CurrentSort"
asp-route-pageIndex="@(Model.Student.PageIndex + 1)"
asp-route-currentFilter="@Model.CurrentFilter"
class="btn btn-default @nextDisabled">
Next
</a>
我應該怎么做才能做到這一點?
asp-route-CurrentFilter
無法分配數組。您可以使用@Url.Page
分配自定義路由數據。請參閱此處 。
public string[] CurrentFilter { get; set; }
public async Task OnGetAsync(string sortOrder,string[] currentFilter,string[] searchString,int? pageIndex)
.cshtml:
<a href="@Url.Page("./Index",
new {
sortOrder= Model.CurrentSort,
currentFilter = Model.CurrentFilter,
pageIndex= Model.Student.PageIndex +1
})"
class="btn btn-default @nextDisabled">
Next</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.