HtmlHelper отсутствует? - PullRequest
       2

HtmlHelper отсутствует?

2 голосов
/ 11 августа 2009

Я пытаюсь создать 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 ]

6 голосов
/ 11 августа 2009

Вам необходимо импортировать пространство имен вашего расширения в представлении или в файле web.config.

В web.config:

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

На ваш взгляд:

<%@ Import Namespace="MyExtensions.Namespace" %>
1 голос
/ 11 августа 2009

Убедитесь, что ваш помощник помещен в пространство имен (любое), на которое ссылается web.config, или на саму страницу (Импортировать пространство имен).

1 голос
/ 11 августа 2009

Вам необходимо зарегистрировать пространство имен в web.config

<system.web>
    <pages>
        <namespaces>
            <add namespace="X.Y.Z"/>
        </namespaces>
    </pages>
</system.web>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...