Automatic controller detection in asp net core


Automatic controller is a crucial aspect of ASP.NET Core development. It allows the framework to automatically discover and register controllers without the need for explicit configuration. This greatly simplifies the development process and improves productivity.

How Automatic Controller Detection Works

ASP.NET Core uses a convention-based approach to automatically controllers. By default, it searches for classes that from the Controller base class and have a of “Controller”. For example, a class named HomeController would be automatically detected as a controller.

To enable automatic controller detection, you need to a few conventions:

  • The controller class must be public.
  • The controller class must be non-abstract.
  • The controller class must have a suffix of “Controller”.


Let's consider an example to illustrate automatic controller detection in ASP.NET Core:

using Microsoft..Mvc;

public class HomeController : Controller
    public IActionResult ()
        return View();

In this example, we have a class named HomeController that derives from the Controller base class. Since it follows the naming convention and meets the other requirements, ASP.NET Core will automatically detect it as a controller.

Benefits of Automatic Controller Detection

Automatic controller detection offers benefits:

  • Reduced configuration: With automatic detection, you don't need to manually register controllers in the application's configuration. This time and effort.
  • Improved productivity: Developers can focus on writing code rather than configuring controllers. This leads to increased productivity.
  • Consistency: Automatic detection enforces naming conventions, ensuring a consistent structure across the application.


Automatic controller detection is a powerful feature of ASP.NET Core that simplifies the development process. By following a few conventions, you can enable automatic detection and let the framework handle the registration of controllers. This saves time, improves productivity, and ensures consistency in your application.

Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Table of Contents