MVC扩展方法错误

mrt*_*rtn 2 extension-methods c#-4.0 asp.net-mvc-3

嗨,我的 PagingHelpers 类中有一个扩展方法:

 namespace SportsStore.WebUI.HtmlHelpers
{
    public static class PagingHelpers
    {
        public static MvcHtmlString PageLinks(this HtmlHelper html,
                                               PagingInfo pagingInfo,
                                               Func<int, string> pageUrl)
        {
            StringBuilder result = 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");
                result.Append(tag.ToString());
            }

            return MvcHtmlString.Create(result.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我调用 List.cshtml 中的扩展方法:

@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))

我收到了这个错误:

“System.Web.Mvc.HtmlHelper”不包含“PageLinks”的定义,并且无法找到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“PageLinks”(您是否缺少 using 指令或汇编参考?)

我在视图文件夹内的 web.config 中添加了命名空间:

<pages>
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages"/>
    <add namespace="SportsStore.WebUI.HtmlHelpers"/>**
  </namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)

请帮帮我,我不知道我该如何解决这个问题

Bas*_*nni 5

尝试添加

@using SportsStore.WebUI.HtmlHelpers;
Run Code Online (Sandbox Code Playgroud)

到 .cshtml 文件的顶部

您的命名空间方法也应该有效,因此请尝试关闭服务器重建您的解决方案并再次运行