Use [Controller] and [NonController] Attributes in ASP.NET Core

ASP.NET Core MVC uses certain conventions when it comes to naming the controllers. Although these defaults work as expected in many cases, at times you may want to take charge of the controller naming. Luckily, ASP.NET Core provides two attributes - [Controller] and [NonController] - that can be used to alter this default behavior. To that end this article shows how to use these attributes with simple examples.

http://www.binaryintellect.net/articles/6988251c-2410-4c80-a1d2-5e359d48f6f1.aspx