2012-05-18 24 views
15

no puedo utilizar el siguiente espacio de nombres PagedList utilizar la maquinilla de afeitar @model PagedList.IPagedList<PhoneBook.Models.Contact> en la más alta de vista Index.cshtmlNo se puede utilizar NuGet PagedList ASP.NET MVC# Ver

ya he instalado PagedList y ya se utiliza el código de abajo en mi controlador

using PagedList; 

no hay error en la página del controlador pero ¿por qué utilizar el espacio de nombres en ican't Index.cshtml (Ver)? Por favor, ayuda ..

+2

debe poner las referencias de ensamblaje en su 'web.config' en la carpeta' Vistas'. http://stackoverflow.com/a/3876409/365526 ​​ – Buildstarted

+0

Puede verificar mi respuesta a la respuesta [aquí] (http://stackoverflow.com/a/35433864/1148691) – mercu

Respuesta

21

BuildStarted referencia o existente al mismo tiempo el uso,

en el controlador

using PagedList; 
using PagedList.MVC; 

y utilizar en vista

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

y utilizar paginación

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

Sor ry para mal inglés es.

+7

Cuando agregó por primera vez estos usos a la vista, puede haber subrayado rojo de error y es posible que no pueda usar html helper de pagedlist. Para usarlo, cierra la vista y ábrela de nuevo. –

+0

¿Debo hablar por ellos? Porque ahora puedo ver la paginación pero no puedo ver los registros. –

+0

Tuve que reconstruir antes de que la vista reconociera las referencias – JsonStatham

5

Acabo de encontrar esta pregunta porque estaba teniendo el mismo problema. He leído muchos tutoriales que sugieren el uso de este objeto PagedList, pero ninguno de ellos dijo nada sobre agregar algo al archivo web.config. Esto es lo que hice para hacer que esto funcione. Usé parte de la información del comentario de @BuildStarted. Estoy usando VS2010.

Esto, unido al archivo web.config:

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

por lo que debe tener este aspecto (cortado con tijeras):

<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

Agradable. Pero también mira esta respuesta. Me ayudó en VS2012 MVC4.5 - No tengo idea de por qué Nuget no lo agregó automáticamente ... Tenía que hacerlo manualmente. – ppumkin

1

creo que tenía exactamente el mismo problema. Visual Studio subraya PagedList en rojo y pregunta "¿falta una directiva de uso o referencia de ensamblado?".

Todo lo que tenía que hacer era construir el proyecto. Entonces Visual Studio deja de quejarse.

4

Reiniciar Visual Studio lo arregló por mí.

1

necesita agregar referencia en su carpeta bin/assembly.

+0

Tuve el mismo problema, tuve que desinstalar PagedList.Mvc y reinstalarlo porque PagedList estaba en mis referencias, pero no en PagedList.Mvc ... Extraño. – JGTaylor

3

que tenían el mismo problema, cuando estoy usando @Model

PagedList.IPagedList

me sale error:

PagedList.IPagedList <> no contiene una definición para ....

Solución:

En Vista -> Index.cshtml
Reemplazar modelo.Código con modelo.Primer().Código

  • Just Add First() before all properties.
0

intentar usar un no capitalizado "M vc" en sus importaciones y luego reconstruir.

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