2012-05-18 3 views
15

Я не могу использовать следующее пространство имен PagedList использовать бритву @model PagedList.IPagedList<PhoneBook.Models.Contact> в верхний зрения Index.cshtmlНевозможно использовать NuGet PagedList ASP.NET MVC# View

Я уже установил PagedList и я использовал уже приведенный ниже код в моем контроллер

using PagedList; 

нет никакой ошибки на странице контроллера, но почему Ican't использовать пространство имен в Index.cshtml (View)? Пожалуйста, помогите ..

+2

Вы должны поместить ссылки на сборку в свой 'web.config' в папку' Views'. http://stackoverflow.com/a/3876409/365526 ​​ – Buildstarted

+0

Вы можете проверить ответ на мой ответ (здесь) (http://stackoverflow.com/a/35433864/1148691) – mercu

ответ

21

BuildStarted направления или существующих на в то же время использования,

в контроллере

using PagedList; 
using PagedList.MVC; 

и использовать в целях

@model PagedList.IPagedList<PhoneBook.Models.Contact> 
@using PagedList; 
@using PagedList.MVC; 

и использовать пейджинг

@Html.PagedListPager(Model, page => Url.Action("Index", new { page = 
page })) 

Sor ry для плохой английский есть.

+7

Когда вы добавили первый раз эти данные на просмотр, может возникнуть ошибка красных подчеркиваний, и вы не сможете использовать html-помощник pagedlist. Чтобы использовать его, закройте представление и откройте его снова. –

+0

Должен ли я их предвидеть? Потому что теперь я вижу пейджинг, но я не вижу записи. –

+0

Мне пришлось перестроить до того, как представление подтвердит ссылки – JsonStatham

5

Я только что нашел этот вопрос, потому что у меня была такая же проблема. Я прочитал много руководств, предлагающих использовать этот объект PagedList, но ни один из них ничего не сказал о добавлении чего-либо в файл web.config. Это то, что я сделал, чтобы сделать эту работу. Я использовал часть информации из комментария @BuildStarted. Я использую VS2010.

Добавьте это в файл web.config:

<add assembly="PagedList.Mvc" namespace="PagedList.Mvc" tagPrefix="plmvc"/> 

Так оно и должно выглядеть следующим образом (пропущено):

<configuration> 
    <system.web> 
    <pages ...> 
     <controls> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
     **<add assembly="PagedList.Mvc" namespace="PagedList.Mvc" tagPrefix="plmvc"/>** 
     </controls> 
    </pages> 
    </system.web> 
</configuration> 
+0

Ницца. Но и посмотрите на этот ответ. Это помогло мне в VS2012 MVC4.5 - Не знаю, почему Nuget не добавил его автоматически ... Мне пришлось сделать это вручную. – ppumkin

1

Я считаю, что у меня была точно такая же проблема. Visual Studio подчеркивает PagedList красным цветом и спрашивает: «Вам не хватает ссылки на директиву или сборку?».

Все, что мне нужно было сделать, это построить проект. Затем Visual Studio перестает жаловаться.

4

Перезагрузка Visual Studio исправила это для меня.

1

вам нужно добавить ссылку в папку с корзиной/сбоку.

+0

У меня была эта же проблема, мне пришлось удалить PagedList.Mvc и переустановить ее, потому что PagedList был в моих ссылках, но не PagedList.Mvc ... Странно. – JGTaylor

3

Я была такая же проблема, когда я использую @model

PagedList.IPagedList

Я получаю сообщение об ошибке:

< PagedList.IPagedList> не содержит определение для ....

Решение:

In View -> Index.cshtml
Заменить модель. Код с моделью. Первый().Код

  • Просто введите сначала() перед всеми объектами.
0

Попробуйте использовать не капитализирован «M » КИ в вашем импорте, а затем восстановить.

@using PagedList.Mvc; 
//@using PagedList.MVC;