HtmlHelper失踪了吗?

时间:2009-08-11 13:00:24

标签: asp.net-mvc

我正在尝试创建一个Html Helper,方法是创建一个静态类,如下所示:

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

我正在调用它:

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

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

  

CS1061:   'System.Web.Mvc.HtmlHelper'   不包含的定义   '面包屑',没有延伸方法   '面包屑'接受了第一个论点   类型   'System.Web.Mvc.HtmlHelper'   可以找到(你错过了吗?   使用指令或程序集   引用?)

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

3 个答案:

答案 0 :(得分:6)

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

在web.config中:

<pages>
    <namespaces>
        <add namespace="MyExtensions.Namespace"/>

在您看来:

<%@ Import Namespace="MyExtensions.Namespace" %>

答案 1 :(得分:1)

您需要在web.config中注册名称空间

<system.web>
    <pages>
        <namespaces>
            <add namespace="X.Y.Z"/>
        </namespaces>
    </pages>
</system.web>

答案 2 :(得分:1)

确保将助手放在web.config中引用的namespace(any)或页面本身(Import Namespace)中。