【问题标题】:HtmlHelper missing?缺少 HtmlHelper?
【发布时间】:2009-08-11 13:00:23
【问题描述】:

我正在尝试通过创建一个静态类来创建一个 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' 不包含定义 '面包屑',没有扩展方法 'Crumbs' 接受第一个参数 类型 'System.Web.Mvc.HtmlHelper' 可以找到(您是否缺少 使用指令或程序集 参考?)

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

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

    在 web.config 中:

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

    在你看来:

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

    【讨论】:

    • 太棒了!我喜欢你指出两种可能的方式这一事实。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      确保将帮助程序放在 web.config 中引用的命名空间(任何)或页面本身(导入命名空间)中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 2014-08-17
        • 2021-09-22
        • 2021-05-14
        • 2014-01-23
        相关资源
        最近更新 更多