2011-11-29 1 views
8

Aggiungo una paginazione per la mia vista e seguo questo in modo approssimativo Tutorial. Ho installato il riferimento PagedList utilizzando Nuget, impostare il mio regolatore come segueSpazio nomi non trovato in MVC 3 Vista del rasoio

public ViewResult Index(int page = 1) 
    { 
     List<Part> model = this.db.Parts.ToList(); 
     const int pageSize = 20; 
     return View(model.ToPagedList(page, pageSize)); 
    } 

e scritto mio punto di vista, con il seguente modello al top

@model PagedList.IPagedList<RIS.Models.Part> 

Quando eseguo pagina ottengo il seguente errore

Compiler Error Message: CS0246: The type or namespace name 'PagedList' could not be found (are you missing a using directive or an assembly reference?) 

Source Error: 


Line 27:  
Line 28:  
Line 29:  public class _Page_Areas_Parts_Views_Part_Index_cshtml : System.Web.Mvc.WebViewPage<PagedList.IPagedList<RIS.Models.Part>> { 

La dll PagedList è essere caricata correttamente nel mio controller, perché quando lo prendo dalla mia vista tutto funziona come previsto. La proprietà CopyLocal è impostata su "True" e ho provato a includere lo spazio dei nomi in Views \ Web.Config nella mia area specifica. Cos'altro posso fare per far sì che la vista veda lo spazio dei nomi?

risposta

0

Qualcosa è incasinato con il mio progetto complessivo. Ho creato un nuovo progetto e ho copiato gli oggetti importanti e ora tutto funziona. Non sono affatto sicuro di cosa c'è di sbagliato nel mio progetto originale.

0

Ho sempre dovuto importare MvcPaging alle mie viste per poter utilizzare PagedList. Ma stavo usando la libreria prima di Nuget, quindi non so come potrebbero essere cambiati gli spazi dei nomi. In una vista moduli Web VB.NET, ho utilizzato <%@ Import Namespace="MvcPaging" %>

+0

Nel browser degli oggetti sembra che il namespace è 'PagedList' ed è quello che il regolatore sta compilando con. – PlTaylor

15

Avevo bisogno di aggiungere lo spazio dei nomi al file web.config di Views.

I dettagli sono in questo SO post:

Ho quindi bisogno di chiudere/riaprire Visual Studio 2010 in modo che esso riconosca. La compilazione del progetto non ha aiutato (il web.config potrebbe essere letto solo una volta al caricamento del progetto).

4

Ho avuto questo problema anche quando si utilizza un assembly che non era impostato su "Copia locale", dopo aver modificato le proprietà di riferimento dell'assieme funziona come previsto.

0

FYI per chiunque altro con lo stesso problema come me qui, si è fermato sul controller "utilizzando PagedList;" per me (che era corretto), comunque il problema che avevo era nel web.config della vista avevo aggiunto il riferimento allo spazio dei nomi "PageList" - che era scritto in modo errato! (Dovrebbe essere stato PagedList - nota la 'd').

0

Nel mio caso, l'errore si lamentava PagedList.MVC e ho dovuto installare anche:

non

solo PagedList.

3

Nel mio caso, in base alla console del gestore pacchetti, il mio progetto aveva un precedente riferimento a PagedList, tuttavia non veniva mostrato nei riferimenti del mio progetto in Solution Explorer.

Soluzione per me era utilizzare la console del gestore pacchetti per rimuovere PagedList.MVC, quindi rimuovere PagedList e poi re-installare di nuovo in questo modo:

  • uninstall-package PagedList.mvc
  • uninstall-package PagedList
  • install-package PagedList
  • install-package PagedList.mvc

Dopo che tutto era buono.

0

Nel mio caso, devo configurarlo in .cshtml, Cs e nel web.config

.cshtml

@model PagedList.IPageList<namespace.model> 
@using PagedList.Mvc; 

Web.Config

<configSections> 
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
</sectionGroup> 

.cs

using PagedList; 

Spero che questo aiuti

2

Prima dispiace per il mio terribile inglese. Nel mio caso, io uso il MVC5 in Visual Studio comunitaria 2015 e ho risolto il problema in questo modo:

prima cosa eliminare la cache di Visual Studio e la cache NuGet:

  • Visual Studio - vai a% LocalAppData % \ Microsoft \ WebsiteCache ed elimina tutta la cartella.
  • Nuget - here

Dopo uso la console di gestione dei pacchetti da rimuovere PagedList.MVC, quindi rimuovere PagedList e poi re-installare di nuovo in questo modo:

  • uninstall-pacchetto PagedList.mvc
  • disinstallazione-pacchetto PagedList
  • install-pacchetto PagedList
  • install-package PagedList.mvc

ho holpe che aiutano

+0

Non ho sentito il bisogno di cancellare cache e file temporanei. Basta disinstallare e installare funzionante. Grazie. –