2011-11-29 114 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

我并不觉得需要清除缓存和临时文件。只需卸载并安装工作。谢谢。 –