Я застрял в справочнике Стивена Сандерсона / Adum Freeman Pro ASP .Net MVC 3. Я поднялся на страницу 185, где HTML-помощник должен использоваться для возврата номера страниц в ссылках.Я нашел помощь на этом сайте, решающую мою проблему с этим справочником, и прошел через каждый шаг, все еще имеющий те же проблемы (ссылка) Ошибка метода расширения MVC
Когда я запускаю код вбраузер Я получаю эту ошибку:
Сообщение об ошибке компилятора: CS1973: «System.Web.Mvc.HtmlHelper» не имеет применимого метода с именем «PageLinks», но, по-видимому, имеет метод расширения с таким именем.Методы расширения не могут быть динамически отправлены.Попробуйте привести динамические аргументы или вызвать метод расширения без синтаксиса метода расширения
Код строится нормально, но если я открою любой другой класс для редактирования этой строки кода в моем вспомогательном методе, получит ту же ошибку, что ивыше.
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
Класс помощника:
namespace SportsStore.WebUI.HtmlHelpers
{
public static class PagingHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper html,
PagingInfo pagingInfo,
Func<int, string> pageURL)
{
StringBuilder results = new StringBuilder();
for (int i = 1; i <= pagingInfo.TotalPages; i++)
{
TagBuilder tag = new TagBuilder("a");
tag.MergeAttribute("href", pageURL(i));
tag.InnerHtml = i.ToString();
if (i == pagingInfo.CurrentPage)
tag.AddCssClass("selected");
results.Append(tag.ToString());
}
return MvcHtmlString.Create(results.ToString());
}
}
}
Мой просмотр:
@{
ViewBag.Title = "Products";
}
@foreach (var p in Model.Products) {
<div class="item">
<h3>@p.Name</h3>
@p.Description
<h4>@p.Price.ToString("c")</h4>
</div>
}
<div class="pager">
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
</div>
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="SportsStore.WebUI.HtmlHelpers"/>
</namespaces>
</pages>
</system.web.webPages.razor>