Как создать расширения HtmlHelper с помощью Razor? - PullRequest
1 голос
/ 24 января 2011

Я видел этот синтаксис:

@helper IncludeJS(string url)
{
    <script src="@url" type="text/javascript"></script>
}

Помещен в файл .cshtml в Views\Helpers.Но тогда он не распознается в представлениях при использовании:

Html.IncludeJS("")
IncludeJS("")

И я получаю эту ошибку:

CS1061: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for...

Как создать собственное расширение HtmlHelper и использовать его в MVC3Бритва)

Ответы [ 2 ]

1 голос
/ 24 января 2011

Помощники создают обычные методы страницы, а не методы расширения:

@IncludeJS("")

Если вы хотите создать метод расширения Html, вам необходимо создать нормальный метод расширения (в .csфайл) для HtmlHelper класса.
Если вы это сделаете, вы можете использовать TagBuilder class.


EDIT : Views\Helpersфункция была удалена до RTM .

0 голосов
/ 04 декабря 2012

Я получил эту же ошибку, потому что у меня было это:

<system.web>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>

Когда мне это нужно было:

<system.web.webPages.razor>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>

Другими словами, в Web есть несколько тегов./ Представления, особенно если вы используете больше механизмов просмотра, чем Razor.Вы должны убедиться, что добавили эту строку в раздел Razor, если хотите, чтобы ваши расширения HtmlHelper отображались в ваших файлах cshtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...