Ответ 1
Вам нужно добавить атрибут [RouteArea("")]
к вашему контроллеру:
[RouteArea("Admin")]
public class HomeController : Controller
Здесь вы можете найти документацию .
Когда я нахожусь внутри области Admin
и сопоставляю свои маршруты с помощью маршрутизации атрибутов, он не может найти представление, потому что он не просматривает папки фактического обзора области, а вместо этого только папки глобального представления.
Только если я пройду полный путь, чтобы просмотреть его, тогда он может отображать его, иначе он выдаст мне ошибку.
Ошибка
The view 'Authorize' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Authorize.aspx
~/Views/Home/Authorize.ascx
~/Views/Shared/Authorize.aspx
~/Views/Shared/Authorize.ascx
~/Views/Home/Authorize.cshtml
~/Views/Home/Authorize.vbhtml
~/Views/Shared/Authorize.cshtml
~/Views/Shared/Authorize.vbhtml
код
[RoutePrefix("admin")]
public class HomeController : Controller
{
[Route]
public ActionResult Index()
{
return View("Authorize"); // Error
return View("~/Areas/Admin/Views/Home/Authorize.cshtml"); // Working
}
}
Обратите внимание, что если я отключу маршрутизацию атрибутов и вернусь к старым старым маршрутам, это сработает. Любой способ исправить это или его работу по назначению, и я должен применять полный путь во всех своих областях?
Вам нужно добавить атрибут [RouteArea("")]
к вашему контроллеру:
[RouteArea("Admin")]
public class HomeController : Controller
Здесь вы можете найти документацию .