Так что для тех, кто приходит сюда позже, вот как я это исправил.
Я создал RouteValueAttribute
следующим образом
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class RegionAttribute : RouteValueAttribute
{
public RegionAttribute(string regionName) : base("Region", regionName)
{
}
}
Тогда я могу использовать это так же, как вы бы указали область
[Region("Region")]
[Area("Area")]
public class TestController : Controller
{
public IActionResult Index()
{
return View();
}
}
и startup.cs
app.UseMvc(routes =>
{
routes.MapRoute(
name: "main_route_region",
template: "{region:exists}/{area:exists}/{controller=Home}/{action=Index}/{id?}");
});
Теперь действие будет доступно с ~/Region/Area/Test/Index