2011-11-29 119 views
8

我正在爲我的視圖添加一個PagedList,並鬆散地跟在此Tutorial之後。我已經安裝使用的NuGet的PagedList參考,建立我的控制器如下在MVC中找不到名稱空間3剃鬚刀視圖

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

,並在頂部

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

寫我用下面的模型視圖當我運行頁面,我得到以下錯誤

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>> { 

的PagedList DLL被正確地加載在我的控制器,因爲我把它拿出來我看的一切的時候按預期工作。 CopyLocal屬性設置爲'True',我試圖在我的特定區域的Views \ Web.Config中包含命名空間。我還能做些什麼來使View查看命名空間?

回答

0

東西和我的整體項目搞砸了。我創建了一個新項目,並複製了重要的項目,現在一切正常。我不確定我的原始項目有什麼問題。

0

我一直不得不導入MvcPaging到我的意見,以便使用PagedList。但是我在Nuget之前使用了這個庫,所以我不知道命名空間是如何改變的。在VB.NET web窗體視圖中,我用<%@ Import Namespace="MvcPaging" %>

+0

在對象瀏覽器,它看起來像命名空間是「PagedList」,這就是控制器與編制。 – PlTaylor

15

我需要將該命名空間添加到Views web.config文件。

詳細信息可在此SO post

然後我需要的,以便爲它承認,關閉/重新打開Visual Studio 2010中。編譯該項目並沒有幫助(web.config可能只能在項目加載時讀取一次)。

4

當使用未設置爲「複製本地」的程序集時,在更改程序集引用屬性後,我也遇到了這個問題。

0

爲與我同樣的問題的其他人在這裏,它停止在控制器上「使用PagedList;」對我來說(這是正確的),但是我的問題是在視圖的web.config中我添加了名稱空間引用「PageList」 - 拼寫錯誤! (應該是PagedList - 注意'd')。

0

在我的情況下,錯誤是抱怨PagedList.MVC,我必須同時安裝:

不僅PagedList。

3

在我的情況中,根據包管理器控制檯,我的項目有一個先前的PagedList引用,但它沒有出現在我的項目引用在解決方案資源管理器中。

我的解決方案是使用包管理器控制檯刪除PagedList。MVC,然後取出PagedList,然後再像這樣重新安裝:

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

之後,一切都很好。

0

在我的情況,我必須配置它在.cshtml,和的.cs在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; 

希望這有助於

2

首先對不起我糟糕的英國。就我而言,我用的是MVC5在Visual Studio社區2015年,我解決了這個問題是這樣的:

首先,我刪除Visual Studio和的NuGet高速緩存:

  • 視覺工作室 - 轉到%LOCALAPPDATA %\ Microsoft \ WebsiteCache並刪除所有文件夾。
  • 的NuGet - here

我用包管理器控制檯後,除去PagedList.MVC,然後取出PagedList,然後再像這樣重新安裝:

  • 卸載包PagedList.mvc
  • 卸載封裝PagedList
  • 安裝封裝PagedList
  • 安裝封裝PagedList.mvc

我holpe這種幫助

+0

我並不覺得需要清除緩存和臨時文件。只需卸載並安裝工作。謝謝。 –