2011-03-18 61 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到我的博客。