У меня Areas
в приложении. Одно имя области - Admin
, и внутри папки контроллера SchoolController
, а внутри Views\School folder
. Когда я использую тег привязки внутри Views\School\Index.html
, он не работает, т.е. не генерирует атрибут href, но если я помещаю тот же тег в макет или любую другую страницу бритвы, которая не находится внутри области, он генерирует тег href. Тег привязки -
<a class="nav-link text-dark" asp-area="Admin" asp-controller="School" asp-action="Index">School</a>
Конфигурация маршрутизации -
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "MyArea",
pattern: "{area:exists}/{controller=School}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Account}/{action=SignIn}/{id?}");
});
Тег привязки отображается за пределами страниц области как <a class="nav-link text-dark" href="/Admin">School</a>
, а виды изнутри области как <a class="nav-link text-dark" asp-area="Admin" asp-controller="School" asp-action="Index">School</a>
Не могли бы вы указать, чего не хватает?
_ViewImports.cshtml
файлы. Скорее всего, у вас нет директивы@addTagHelper
для помощников тегов MVC, которые используются в областях. - person Kirk Larkin   schedule 05.07.2020