Как сделать пейджер с MVCContrib и Razor? - PullRequest
3 голосов
/ 05 апреля 2011

У меня есть пейджер следующим образом:

@using MvcContrib.UI.Pager
@model MvcContrib.Pagination.IPagination

<p/>
  @Html.Pager(Model).First("First").Last("Last").Next("Next").Previous("Previous")
<p/>

Вместо отображения этого:

Отображение 1 - 10 из 10841 Первая |Предыдущая |Следующая |Последний

Он отображает это:

<div class='pagination'><span class='paginationLeft'>Showing 1 - 10 of 10841 </span><span class='paginationRight'>First | Previous | <a href="/Home/Events?page=2">Next</a> | <a href="/Home/Events?page=1085">Last</a></span></div>

Я также скачал пример проекта из codeproject , но когда я его запускаю, у меня возникает та же проблема.

В чем может быть проблема?Ребята, вы можете мне помочь?

Ответы [ 2 ]

3 голосов
/ 05 апреля 2011

Причина, по которой это работает в примере проекта, а не в вашем проекте, заключается в том, что в примере проекта они используют @Html.Pager на частичной странице, которая затем вызывается на главной странице с помощью @{Html.RenderPartial();} при рендеринге подобным образом.отрендеренная строка из Pager выводится как html, а не как html.

Если вам нужно использовать пейджер без подстраниц, тогда вам нужно будет обернуть вызов в Html.Raw, как предложил Линггорон в качествеHtml.Pager по умолчанию использует ToString, который возвращает string, а не IHtmlString

3 голосов
/ 05 апреля 2011

Razor автоматически кодирует HTML, если вы возвращаете строку. Он не будет кодировать HTML, если вы вернете IHtmlString.

Возвращает ли метод пейджера строку вместо IHtmlString?

Попробуйте использовать Html.Raw. Этот метод преобразует строку в IHtmlString.

@Html.Raw(Html.Pager(Model).First("First").Last("Last").Next("Next").Previous("Previous"))
...