У меня есть структура папок для моей новой области
Вот как я настроил ее при запуске:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
Вот как я создал свой базовый контроллер
namespace App.Areas.Applications.Controllers
{
[Area("Applications")]
[Authorize]
public abstract class ApplicationsBaseController : Controller
{
}
}
Мой ApplicationsController затем наследует BaseController
Однако, когда я устанавливаю такую ссылку
<li class="nav-item"><a asp-area="Applications" asp-controller="Applications" asp-action="Index" class="nav-link">Applications</a></li>
Thisэто ссылка, которая появляется в моем URL https://localhost:44338/Applications?area=Applications, и я получаю страницу не может быть найдена.
Что я упустил при настройке моей Области?
РЕДАКТИРОВАТЬ:
Когда я добавляю [Маршрут ("Приложения / [контроллер]")] после моей [Область («Приложения»)], я получаю эту ошибку
Произошло необработанное исключение при обработке запроса.AmbiguousActionException: несколько действий совпадают.Следующие действия соответствовали данным маршрута и удовлетворяли всем ограничениям:
App.Areas.Applications.Controllers.ApplicationsController.Index (App) App.Areas.Applications.Controllers.ApplicationsController.Create (App) App.Areas.Applications.Controllers.ApplicationsController.NewRole (Приложение)