Я новичок в ASP.NET MVC и не могу понять это. Работая с примером Nerdinner из Professional ASP.NET MVC 2, я скопировал вспомогательный класс PaginatedList и решил улучшить его, чтобы прямые и обратные ссылки могли быть созданы методом внутри класса вместо записи их на каждой странице представления. Я скопировал это из представления, что это было, Index.aspx:
if (Model.HasPreviousPage)
{
Response.Write(Html.RouteLink("<<<", "Users", new { page=(Model.PageIndex-1) }));
}
И использовал его для создания этого метода в Helpers \ PaginatedList.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», и не найдено никакого метода расширения «RouteLink», принимающего первый аргумент типа «System.Web.Mvc.HtmlHelper» (вам не хватает директивы using или ссылки на сборку?) ".
Согласно документации Microsoft по методу LinkExtensions.RouteLink, «В Visual Basic и C # этот метод можно вызывать как метод экземпляра для любого объекта типа HtmlHelper». Они лгут?
Помощь!