69

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

那么我可以将这些类放在我的文件夹结构中的什么位置,然后我该如何访问呢?

4

5 回答 5

86

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

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

要在我的其他类(例如:控制器)中使用它,我可以使用完全限定名称

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

或者

在顶部添加一条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 语句)

于 2012-07-17T04:26:11.897 回答
12

你可以把你的助手类放在任何你认为合乎逻辑和方便的地方。

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

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

在 Razor 视图中,您将使用

@using MyProject.Helpers

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

using MyProject.Helpers;
于 2012-07-17T04:24:20.787 回答
7

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

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

像使用...

public HomeController:MyBaseController
{
}
于 2016-06-15T08:14:57.790 回答
6

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

于 2012-07-17T09:03:26.420 回答
1

另外,请务必将您的类的“构建操作”设置为“编译”。在 Visual Studio 2015 中,默认情况下,在 App_Code 中创建的每个类(通过右键单击 -> 添加 -> 类)都将“内容”作为构建操作。

于 2017-09-22T17:23:47.673 回答