In MVC6 you still have area and prefix, it has simply been relegated to only the Route tag for the controller level, and put the action route into the http verb. so i.e.
this:
[RouteArea("AreaPrefix")]
[RoutePrefix("RoutePrefix")]
public class HomeController : Controller
{
...
[HttpGet]
[Route("LoginAction")]
public ActionResult Login() ....
becomes
[Route("AreaPrefix/ControllerPrefix")]
public class HomeController : Controller
{
...
[HttpGet("LoginAction")]
public IActionResult Login() {
So it is more ambiguous, but I have personally been a culprit of self victimizing the routing process, and where this uses the standard routing objects in the [] notation (think of that as what was the {} before). But it still gives the level of control to specify the tiering once and be done, so that it now affords a simpler inheritance model of :
[Route("AreaPrefix/ControllerPrefix")
public class HomeOps : Controller // Controller Suffix is optional
{
}
[Route("api")]
public class HomeApiOps : HomeOps
{
// put the api AJAX methods here
[HttpPost("lookup")] // will route to // AreaPrefix/ControllerPrefix/api/lookup
public IActionResult Lookup() {
}
public class HomePageOps : HomeOps
{
// put similar routes for View returns, file content responses here
[HttpPost("lookup")] // Will route to AreaPrefix/ControllerPrefix/lookup
public IActionResult Lookup() {
}
This can drill down to a more organized way of expressing the 'Unit of Work' and
'Line of Business' concepts, where you can easily group and yet separate api calls and pages without a massive controller or endless #region trip ups.
With this inheritance also keep in mind you could make a root controller class per Area and set certain routes for area wide tiering, then inherit to the second layer for the "ControllerPrefix" overhead Route, and only need to specify on each action the action route name, it uses the rollup of inheritance to glue the routes together, turning the previous example into AreaPrefix/ControllerPrefix/Route
I'm with you on all-in with MVC6, the client side devs at my business love the platform, and on the Data end, it makes getting them information clean and simple, but the sparse documentation can get frustrating at times... Hope this helped