Я сейчас занимаюсь миграцией проекта WebForms в MVC 5 с конечной целью получить его в .NET Core 2.
Я смотрю на использование функциональности Area в MVC и хочу иметь область администратора, которая будет иметь те же контроллеры, что и версия без прав администратора, т.е. / Blog / Index и /Admin/Blog/Index.
Я следовал некоторым учебникам, и я получаю ошибку 404 в / Admin /, я пробовал другие значения маршрута, т.е. / Admin / Home / и / Admin / Home / Index - все приводит к ошибке 404.
Я подозреваю, что мне нужно создать еще одну область для страниц без прав администратора, чтобы все страницы были в пределах области, но я не уверен.
Моя структура папок выглядит следующим образом:
---- Areas
| |
| |---- Admin
| |--- Controllers
| | |---- HomeController
| |--- Views
| |--- Index
|----Controllers
| |----HomeController
|
|----Views
|--- Index
Я назначил пространство имен в AdminAreaRegistration.cs и RouteConfig.cs следующим образом:
AdminAreaRegistration.cs
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "WebApplication1.Areas.Admin.Controllers" }
);
RouteConfig.cs
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "WebApplication1.Controllers" }
);