我正在尝试用MvcContrib的Html.Pager()
分页,但我的剃刀视图无法引用正确的命名空间。
控制器没问题:
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。我尝试将MvcContrib
,MvcContrib.UI
和MvcContrib.UI.Html
命名空间添加到web.config中的<pages><namespaces>
,但没有运气。我错过了什么吗?
答案 0 :(得分:15)
与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)
答案 1 :(得分:0)
添加MvcContrib.dll引用后,请尝试此代码。
@using MvcContrib.UI.Pager
@using MvcContrib.Pagination
@model IPagination
@Html.Pager(Model)
我发布了MvcContrib网格分页,过滤+ MVC3 Razor sample article到我的博客。