我在哪里可以将自定义类放在ASP.NET MVC中?

时间:2012-07-17 04:20:09

标签: .net asp.net-mvc

我有一些实用功能和分页功能。我想分别为这些函数创建名为Utility和Pagination的类,这样我就可以在多个控制器中使用这些类函数。

那么我在哪里可以将这些类放在我的文件夹结构中,以及如何访问呢?

5 个答案:

答案 0 :(得分:74)

您可以在根目录下创建一个名为Helpers的新文件夹,并将您的课程保存在那里。我会将我的类保存在名为Helpers

的不同名称空间下
namespace MyProject.Helpers
{
  public class CustomerHelper
  {
        //Do your class stuff here
  }
}

要在我的其他类(Ex:Controllers)中加入,我可以使用完全限定名称

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

OR

在顶部添加Import语句,以便我可以跳过完全限定名称

//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();    
  } 
}

如果您认为您的Helper方法也可以在另一个项目中使用,您可以考虑将它们物理地保存在单独的项目中(类型库类型)。要在项目中使用它,请添加对此项目的引用,并像上面所做的那样使用它(使用完全限定名称或使用import语句)

答案 1 :(得分:8)

您可以将助手类放在合乎逻辑且方便的任何位置。

我个人在主项目文件夹中创建了一个文件夹Helpers

您可以在任何地方使用它们,方法是完全限定类名或使用using语句。

在Razor视图中,您将使用

@using MyProject.Helpers

在控制器或模型中,您将使用

using MyProject.Helpers;

答案 2 :(得分:7)

另一种方法可能是创建一个基本控制器类并在那里添加您的通用逻辑,并从您的基本控制器派生您的控制器。

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

使用像......

public HomeController:MyBaseController
{
}

答案 3 :(得分:6)

您可以创建一个新项目,然后将公共类放入项目中。如果要使用它们,只需添加引用项目即可。

答案 4 :(得分:1)

另外,请务必将班级的“构建操作”设置为“编译”。 在Visual Studio 2015中,默认情况下,在App_Code中创建的每个Class(通过右键单击 - > Add - > Class)都将“Content”作为Build Action。