2015-05-26 3 views
3

По умолчанию URL:http://ipf.bulgaria.local/Aboutus.aspxRazor MVC partialview pagination url action, Как определить указанный URL?

После нажатия на постраничной URL: http://ipf.bulgaria.local/api/sitecore/Newsfeed?page=2

Ожидаемый URL:http://ipf.bulgaria.local/Aboutus.aspx?page=2

Может кто-то мне советы, как достичь ожидаемого URL и как получить читать «/ api/sitecore/Newsfeed»?

<div class="col-sm-10"> 
    <div class="center">   
      @Html.PagedListPager((PagedList.IPagedList)Model 
      .SelectedNewsItems, 
      page => Url.Action("Index", new { page })) 
    </div> 
</div> 
+0

Вы получаете URL-адрес от Sitecore или Lucene/Solr? –

ответ

0

По умолчанию URL: http://ipf.bulgaria.local/Aboutus.aspx

После нажатия на постраничной URL: http://ipf.bulgaria.local/api/sitecore/Newsfeed?page=2

Ожидаемый URL: http://ipf.bulgaria.local/Aboutus.aspx?page=2

Может кто-то советы мне, как достичь ожидаемого URL и как получить читать "/ api/sitecore/Newsfeed"?

В принципе, вам нужен тот же URL-адрес всегда после нажатия на разные страницы с номером страницы, отображаемым в виде строки запроса.

Так что первое, что вам нужно сделать, это пройти модель, как

@model PagedList.IPagedList<Type> 

Так от вас контроллер вы бы передать правильный набор данных на основе количества страниц, как:

YourList.ToPagedList(pageNumber, pageSize); 

Следовательно каждый вам нужно передать pagenumber на контроллер, чтобы соответствующие данные страницы передавались в представление, которое было бы релевантным. Вопрос в том, как я могу узнать номер страницы? Элемент управления выгружаемым списком дает вам номер страницы, и вы использовали бы это, чтобы передать его в виде строки запроса и прочитать в контроллере. , так что ваша проблема с URL будет решена. Надеется, что это помогает, и для лучшего понимания смотрите видео: https://www.youtube.com/watch?v=6bKZoKyBlE8

0

Несмотря на то, что уже некоторое время этот вопрос задает, это может быть полезно для тех, кто все еще проблемы с генерируемой пагинацией URL. То, что вы получаете, - это маршрут по умолчанию. Чтобы решить эту проблему, вы можете добавить настраиваемый маршрут и указать на него в коде @ Html.PagedListPager.

Но в вашем случае, следующий будет делать трюк:

@Html.PagedListPager(Model, page => 
LinkManager.GetItemUrl(Sitecore.Context.Item) + "?page=" + page) 

Часть LinkManager.GetItemUrl (Sitecore.Context.Item) будет получить URL текущего элемента. Таким образом, вы получите URL-адрес «Aboutus.aspx? Page = 2», как ожидалось.