HtmlHelper失踪了吗?

Dav*_*nde 2 asp.net-mvc

我正在尝试通过创建一个静态类来创建一个Html Helper,如下所示:

public static string Crumbs(this HtmlHelper helper, params string[] args) where T : class
{
    // ... rest of code goes here.
}
Run Code Online (Sandbox Code Playgroud)

而我正在调用它:

<% Html.Crumbs(
    Html.ActionLink("Home", "Index", "Home"),
    Html.ActionLink("Lists", "Index", "User"),
    Html.Encode(Model.List.Name)); %>
Run Code Online (Sandbox Code Playgroud)

但是,视图无法编译,因为我收到以下编译错误:

CS1061:'System.Web.Mvc.HtmlHelper'不包含'Crumbs'的定义,也没有扩展方法'Crumbs'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你错过了吗?使用指令或程序集引用?)

我不明白.我没有提到你需要在任何地方注册静态类的命名空间的文档.我究竟做错了什么?

Ari*_*sky 6

您需要在视图或web.config中导入扩展的命名空间.

在web.config中:

<pages>
    <namespaces>
        <add namespace="MyExtensions.Namespace"/>
Run Code Online (Sandbox Code Playgroud)

在你看来:

<%@ Import Namespace="MyExtensions.Namespace" %>
Run Code Online (Sandbox Code Playgroud)