Вспомогательная функция тега привязки внутри папки области не генерирует имя области маршрута MVC Core 3.1

У меня 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> Не могли бы вы указать, чего не хватает?


person Oxygen    schedule 05.07.2020    source источник
comment
Взгляните на свои _ViewImports.cshtml файлы. Скорее всего, у вас нет директивы @addTagHelper для помощников тегов MVC, которые используются в областях.   -  person Kirk Larkin    schedule 05.07.2020
comment
Понятно. Я добавил _ViewImports.cshtml в папку просмотра областей. Есть ли способ использовать только один файл _ViewImports.cshtml в приложении, который может быть применим и к видам области?   -  person Oxygen    schedule 05.07.2020
comment
docs.microsoft.com/ en-us / aspnet / core / mvc / controllers /   -  person Kirk Larkin    schedule 05.07.2020
comment
Рад, что вы отсортировали - также имейте в виду, что классу контроллера может потребоваться атрибут [Area (Admin)], который, если он отсутствует, может вызвать проблемы с маршрутизацией, особенно если у вас есть действия с тем же именем, что и другие контроллеры области.   -  person pixelda    schedule 06.07.2020


Ответы (1)


пожалуйста, добавьте

  • _ViewImports.cshtml
  • _ViewStart.cshtml

внутри папки Area тоже

person mohammad mobasher    schedule 30.05.2021