У меня есть простое действие, в котором я делаю запрос к веб-службе, чтобы получить СПИСОК статей для определенной группы.
Затем, используя pagedList (и указав нужную страницу и номер страницы), я, конечно, указываю подмножество этого списка, которое я хочу взять. Проблема в том, что статья для конкретной группы может быть, например, тысяча - и получение информации для всех из них из веб-сервиса занимает много времени, а иногда и сбои (когда статей больше 1000)
Есть ли способ получить статьи только для определенной страницы и по-прежнему использовать pagedList, потому что я вижу, что, к сожалению, мы должны вызывать метод ToPagedList для всей коллекции.
public virtual ActionResult ImportShow(String id, int? menuID, string articlegroupID, string menuforHistory,int? counter,int?page,int? pageSize,string articleDescr, int? ArticleID)
{
List<WebServiceBeaMenu> standartList = ebServiceBea.GetArticle(Convert.ToInt32(menuID), articlegroupID, "", articleDescr);
IPagedList<WebServiceBeaMenu> p_ProductsShow = standartList.ToPagedList(actualpage,actualPageSize);
p_GroupMenu.ProductMenu = p_ProductsShow;
p_GroupMenu.MenuHistory = p_GetMenuHistory.ToList();
p_GroupMenu.MenuLeft = p_GetMenuLeft.ToList();
return PartialView("ImportShow", p_GroupMenu);
}
}
вот мой взгляд
@model MvcBeaWeb.GroupMenu
@for (int i = 0; i < Model.ProductMenu.Count; i++)
{
<div>
var item = Model.ProductMenu[i];
@Html.PagedListPager(Model.ProductMenu, page => Url.Action("ImportShow", new { id = Model.LanguageName, menuID = @Session["men"], articlegroupID = Session["article"], articleDescr = Session["articleDescr"], pageSize = Session["pageSize"], page }))
</div>