11

I'm trying to paginate something with MvcContrib's Html.Pager(), but my razor views can't reference the right namespace.

Controller is ok:

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

But, the view can't make sense of either:

@using MvcContrib

OR

@Html.Pager((IPagination)Model)

I installed MvcContrib via NuGet. I tried adding MvcContrib, MvcContrib.UI and MvcContrib.UI.Html namespaces to <pages><namespaces> in web.config with no luck. Did I miss something?

David Fox
  • 10,603
  • 9
  • 50
  • 80

2 Answers2

15

Contrary to WebForms, Razor doesn't use the <namespaces> section in ~/web.config. It uses the <namespaces> in ~/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>

and then:

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

or you could also add the proper namespace to your view if you prefer:

@model MvcContrib.Pagination.IPagination<SomeViewModel>
@using MvcContrib.UI.Pager
@Html.Pager(Model)
Leniel Maccaferri
  • 100,159
  • 46
  • 371
  • 480
Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
  • 1
    I'll give that a shot--I thought NuGet would have done that automagically. – David Fox Mar 18 '11 at 13:01
  • @Darin After working with Microsoft's WebGrid I decided to give MvcContrib's grid a chance. So far I like it. Way better with lots of customizable points... The only thing I feel is missing is a more consistent documentation section on the site http://mvccontrib.codeplex.com/wikipage?title=Grid&referringTitle=Documentation and better integration with an ASP.NET MVC app when the NuGet package is installed. – Leniel Maccaferri Jun 15 '12 at 21:30
0

After adding MvcContrib.dll reference, try this code.

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

@Html.Pager(Model)

I posted MvcContrib Grid paging,filtering + MVC3 Razor sample article to my blog.

Sangsu PARK
  • 306
  • 1
  • 4
  • 13