Rajan Rawal
Rajan Rawal

Reputation: 6313

Where can I put custom classes in ASP.NET MVC?

I have some utility functions and Pagination function. I want to create classes named Utility and Pagination for these functions respectively, so that I can use these class function in more than one controllers.

So where can I put these class in my folder structure, and how can I access then?

Upvotes: 71

Views: 64260

Answers (5)

Fadelovesky
Fadelovesky

Reputation: 131

Also, Please be sure to set the "Build Action" of your Class to "Compile". In Visual Studio 2015, By default, every Class created within the App_Code (by right click -> Add -> Class) got "Content" as Build Action.

Upvotes: 1

Rishikesh
Rishikesh

Reputation: 496

Another approach could be creating a Base Controller class and adding your common logic there, and deriving your controller from your base controller.

public class MyBaseController:Controller
{
   public void CommonFunction()
    {
    }
}

Use like...

public HomeController:MyBaseController
{
}

Upvotes: 7

Kavis Shaw
Kavis Shaw

Reputation: 61

You can create a new project,and then put the common classes into the project . If you want to use them,just Add Reference the project.

Upvotes: 6

Shyju
Shyju

Reputation: 218892

You can either create a new Folder called Helpers under the root and keep your classes physically there. I would keep my classes under a different namespace called Helpers

namespace MyProject.Helpers
{
  public class CustomerHelper
  {
        //Do your class stuff here
  }
}

To accees this in my other classes (Ex : Controllers) ,I can either use the fully qualified name

var custHelper=new MyProject.Helpers.CustomerHelper(); 

OR

add a Import statement at the top so that i can skip the fully qualified name

//Other existing Import statements here
using MyProject.Helpers;
public class RackController : Controller
{
  public ActionResult Index()
  {
     var custHelper=new CustomerHelper(); 
     //do something with this  
     return View();    
  } 
}

If you think your Helper method can be used in another project also, You may consider to keep them physically in a separate project(of type class library). To use this in your project, Add a reference to this project and use it like what we did above (use either fully qualified name or use import statement)

Upvotes: 87

Eric J.
Eric J.

Reputation: 150208

You can put your helper classes anywhere you find logical and convenient.

Personally I create a folder Helpers off of the main project folder.

You can use them anywhere, either by fully qualifying the class name or with a using statement.

In a Razor view, you would use

@using MyProject.Helpers

In a controller or model you would use

using MyProject.Helpers;

Upvotes: 13

Related Questions