Controller in ASP.NET MVC

controller in mvc

ASP.Net MVC Controller

In this article, we will learn about the Controller in ASP.NET MVC.

The Controller in MVC architecture handles any incoming URL request. The controller is a class, derived from the base class System.Web.Mvc.Controller. Controller class contains public methods called Action methods. Controller and its action method handles incoming browser requests, retrieves necessary model data and returns appropriate responses.

In ASP.NET MVC, every controller class name must end with the word “Controller”. For example, a controller for the home page must be HomeController and controller for the student must be StudentController. Also, every controller class must be located in the Controller folder of MVC folder structure.

Adding a New Controller

Now, let’s add a new empty controller in our MVC application in Visual Studio.

In the previous article, we learned how to create our first MVC application, which in turn created a default HomeController. Here, we will create new StudentController.

In the Visual Studio, right click on the Controller folder -> select Add -> click on Controller.

Add New Controller in ASP.NET MVC

This opens Add Scaffold dialog as shown below.

Note: Scaffolding is an automatic code generation framework for ASP.NET web applications. Scaffolding reduces the time taken to develop a controller, view, etc. in the MVC framework. You can develop a customized scaffolding template using T4 templates as per your architecture and coding standard.


Add Scaffold dialog contains different templates to create a new controller. We will learn about other templates later. For now, select “MVC 5 Controller – Empty” and click Add. It will open Add Controller dialog as shown below


In the Add Controller dialog, enter the name of the controller. Remember, the controller name must end with the Controller. Let’s enter StudentController and click Add.


This will create StudentController class with Index method in StudentController.cs file under the Controllers folder, as shown below.

Example: Controller

As you can see above, the StudentController class is derived from Controller class. Every controller in MVC must be derived from this abstract Controller class. This base Controller class contains helper methods that can be used for various purposes.

Now, we will return a dummy string from the Index action method of above StudentController. Changing the return type of Index method from ActionResult to string and returning dummy string is shown below.

Example: Controller

We have already seen in the routing section that the URL request http://localhost/student or http://localhost/student/index is handled by the Index() method of StudentController class, shown above. So let’s invoke it from the browser and you will see the following page in the browser.


I hope you liked this article based on controllers in MVC. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.


Please enter your comment!
Please enter your name here