MVC3 не распознает пространство имен MvcContrib в Razor View

Я пытаюсь разбить что-то на страницы с помощью Html.Pager() 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)

Я установил MvcContrib через NuGet. Я безуспешно пытался добавить пространства имен MvcContrib, MvcContrib.UI и MvcContrib.UI.Html в <pages><namespaces> в web.config. Я что-то пропустил?


person David Fox    schedule 18.03.2011    source источник


Ответы (2)


В отличие от WebForms, Razor не использует раздел <namespaces> в ~/web.config. Он использует <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)
person Darin Dimitrov    schedule 18.03.2011
comment
Я попробую — я думал, что NuGet сделает это автоматически. - person David Fox; 18.03.2011
comment
@Darin После работы с Microsoft WebGrid я решил дать шанс сетке MvcContrib. Пока мне это нравится. Гораздо лучше с множеством настраиваемых точек... Единственное, чего мне не хватает, так это более последовательного раздела документации на сайте mvccontrib.codeplex.com/ и улучшенная интеграция с приложением ASP.NET MVC, если установлен пакет NuGet. - person Leniel Maccaferri; 16.06.2012

После добавления ссылки на MvcContrib.dll попробуйте этот код.

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

@Html.Pager(Model)

Я опубликовал пример статьи MvcContrib Grid paging, filtering + MVC3 Razor. мой блог.

person Sangsu PARK    schedule 21.03.2011