Добро пожаловать в StackOverflow!
Я копаюсь в книге ASP. NET Core MVC 2 Адама Фримена, так как я нашел Вашу декларацию _ViewImports.cshtml
странно выглядящей, а также нашел подтверждение в docs , что вы, скорее всего, там используете неправильный синтаксис.
На основании документации это должно выглядеть примерно так (обратите внимание на .
, а не на пробел):
@addTagHelper *, MarkdownTagHelper
в качестве второго аргумента следует указать либо FQN , либо короткое имя сборки, а затем первый аргумент сообщает нам, какие классы из данной сборки мы хотим использовать. Ваша текущая декларация гласит «импортировать все классы из сборки CustomTagHelpers.Helpers
», которая не существует (это пространство имен). Что касается 3-й части после пробела, честно говоря, я не знаю, как это будет интерпретироваться, скорее всего, игнорируется.
Вы также можете использовать этот синтаксис:
@addTagHelper CustomTagHelpers.Helpers, MarkdownTagHelper
но я думаю, что ваше намерение было первым - импортировать всех помощников из вашей сборки.
Пожалуйста, проверьте его если это поможет? Я думаю, что это может быть.
РЕДАКТИРОВАТЬ:
Я создал короткий экзамен для проверки и да - это был вопрос неправильного синтаксиса @addTagHelper
.
После создания нового проекта (dotnet new mvc -o Sample
), создания библиотеки для помощников тегов (сборка) (dotnet new classlib CustomTagHelpers
), добавления ссылки на эту библиотеку в основной проект, я получаю следующее:
| Sample (sln)
|- CustomTagHelpers (classlib)
|-- Helpers (dir)
|--- MarkdownTagHelper.cs (Your code with CustomTagHelpers.Helpers namespace)
|- Sample (mvc project)
...
и _ViewImports.cshtml
файл:
@addTagHelper CustomTagHelpers.Helpers.MarkdownTagHelper, CustomTagHelpers
После перестройки тега помощник будет виден:

Конечно Вы также можете использовать @addTagHelper *, CustomTagHelpers
для импорта всех классов из сборки.
А как насчет стандартного @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
, который выглядит как пространство имен ( docs )? На самом деле это имя файла DLL (сборка). Вы можете найти его здесь: %USERPROFILE%\.nuget\packages\microsoft.aspnetcore.mvc.taghelpers\2.0.0\lib\netstandard2.0
или аналогичный каталог. Вот исходный код для этого: ссылка . Microsoft.AspNetCore.Mvc.TagHelpers
- это просто имя библиотеки классов / сборки. Мы также можем сделать то же самое, изменив структуру нашего проекта следующим образом:
| Sample (sln)
|- CustomTagHelpers.Helpers (classlib)
|-- MarkdownTagHelper.cs (Your code with CustomTagHelpers.Helpers namespace)
|- Sample (mvc project)
...
и затем мы можем использовать @addTagHelper *, CustomTagHelpers.Helpers
.