Jordan
Jordan

Reputation: 3022

MVC4 Multiple Controllers

This is a very basic question, yet I cannot find any clear, simple, direct answers.

I have a basic MVC4 app with 1 HomeController.cs file. I want to create a second Controller.cs file to put more code into so HomeController doesn't turn into spaghetti code.

So obviously step 1 is to add a new controller. I assume the next step is to add some stuff to RouteConfig.cs.

What do I need to add to RouteConfig.cs to utilize a new Controller.cs?

Upvotes: 1

Views: 1682

Answers (4)

Rinat Galyautdinov
Rinat Galyautdinov

Reputation: 255

What you really need first after creating a new controller is to add a new action (if it's not added automatically) and then add a new View for your new action. You need to touch your routes only if you are about to process some specific parameters which dont match your default settings

Upvotes: 0

George Stocker
George Stocker

Reputation: 57872

What does your routes file look like?

Normally, there's a default route:

routes.MapRoute("default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action="Index" }
);

That means that so long as you add a new controller with the Controller suffix, MVC will make sure the routing engine sees your controller, and as long as your URL follows the above structure, requests made in that format will be routed to the appropriate controller.

Upvotes: 3

Ryan Schlueter
Ryan Schlueter

Reputation: 2221

We normally send it to a different view which submits to different controllers, or add a reference in your current controller if your just wanting to call certain methods in your current home controller.

Upvotes: 0

Trevor Elliott
Trevor Elliott

Reputation: 11252

You shouldn't need to add anything. HomeController requires a line of code in your RouteConfig to be set as the default controller (for when users navigate to the site root), but any other controller should be accessible with the default routing.

Just create a controller, add some actions, and you should be able to route to it with the format Controller/Action or using the routing helper functions.

Upvotes: 5

Related Questions