我是ASP.NET MVC的新手,无法理解这一点。通过学习Professional ASP.NET MVC 2中的Nerminer示例,我复制了PaginatedList帮助程序类,并决定对其进行改进,以便可以通过类中的方法生成前向和后向链接,而不是在每个视图页中都写出它们。我是从Index.aspx中的视图中复制的:
if (Model.HasPreviousPage)
{
Response.Write(Html.RouteLink("<<<", "Users", new { page=(Model.PageIndex-1) }));
}
并使用它在HelpersPaginatedList.cs中创建了此方法:
public string NavLinks()
{
if (HasPreviousPage)
{
return Html.RouteLink("<<<", "Users", new { page=(PageIndex-1) });
}
}
(HasPreviousPage是PaginatedList中的一个简单方法。)
它马上抱怨说“Html名称在当前上下文中不存在,所以我修改了它,使其采用一个参数:
public string NavLinks(HtmlHelper Html)
现在我得到“System.Web.Mvc.HtmlHelper不包含RouteLink的定义,并且找不到接受System.Web.Mvc.HtmlHelpers类型的第一个参数的扩展方法RouteLink(是否缺少using指令或程序集引用?)”。
根据Microsoft关于LinkExtensions.RouteLink方法的文档,“在Visual Basic和C#中,您可以将此方法作为HtmlHelper类型的任何对象的实例方法调用”。他们撒谎吗?
帮助