2011-03-18 58 views
11

我想与MvcContrib的Html.Pager()分页,但我的剃须刀视图无法引用正确的命名空间。MVC3无法识别剃刀视图中的MvcContrib命名空间

控制器正常:

using MvcContrib.Pagination; 
... 
public ActionResult List(int? page) 
{ 
    return View(new UserRepository().GetUserList().AsPagination(page ?? 1, 10)); 
} 

但是,视图不能弄懂之一:

@using MvcContrib 

OR

@Html.Pager((IPagination)Model) 

我通过安装的NuGet MvcContrib。我试图在web.config中将MvcContribMvcContrib.UIMvcContrib.UI.Html命名空间添加到<pages><namespaces>,但没有运气。我错过了什么?

回答

15

与WebForms相反,Razor不使用~/web.config中的<namespaces>部分。它使用<namespaces>~/Views/web.config

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="MvcContrib"/> 
     <add namespace="MvcContrib.UI.Grid"/> 
     <add namespace="MvcContrib.UI.Pager"/> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

然后:

@model MvcContrib.Pagination.IPagination<SomeViewModel> 
@Html.Pager(Model) 

或者你也可以适当的命名空间添加到您的看法,如果你喜欢:

@model MvcContrib.Pagination.IPagination<SomeViewModel> 
@using MvcContrib.UI.Pager 
@Html.Pager(Model) 
+1

我会给你一个镜头 - 我以为NuGet会自动做到这一点。 – 2011-03-18 13:01:20

+0

@Darin在与微软的WebGrid合作之后,我决定给MvcContrib的网格一个机会。到目前为止,我喜欢它。更好的方式有很多可定制的点...我觉得唯一缺少的是网站http://mvccontrib.codeplex.com/wikipage?title=Grid&referringTitle=Documentation上的更一致的文档部分,并与ASP更好地集成。 NET MVC应用程序,当NuGet包安装。 – 2012-06-15 21:30:55

0

加入MvcContrib后。 DLL参考,请尝试此代码。

@using MvcContrib.UI.Pager 
@using MvcContrib.Pagination 
@model IPagination  

@Html.Pager(Model) 

我张贴MvcContrib电网分页,筛选+ MVC3剃刀sample article到我的博客。