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

在ASP.NET MVC中,在哪里可以放置自定义类?,.net,asp.net-mvc,.net,Asp.net Mvc,我有一些实用功能和分页功能。我想分别为这些函数创建名为Utility和Pagination的类,以便可以在多个控制器中使用这些类函数 那么,我可以将这些类放在我的文件夹结构中的什么位置,以及如何访问这些类呢?您可以将助手类放在您认为合理和方便的任何位置 我个人在主项目文件夹下创建了一个文件夹Helpers 您可以在任何地方使用它们,或者完全限定类名,或者使用语句 在剃刀视图中,您将使用 @using MyProject.Helpers using MyProject.Helpers; 在您将

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


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

您可以将助手类放在您认为合理和方便的任何位置

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

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

在剃刀视图中,您将使用

@using MyProject.Helpers
using MyProject.Helpers;
在您将使用的控制器或模型中

@using MyProject.Helpers
using MyProject.Helpers;

您可以在根目录下创建一个名为
Helpers
的新文件夹,并将您的类物理地保存在那里。我将把我的类放在另一个名为
Helpers的命名空间下

namespace MyProject.Helpers
{
  public class CustomerHelper
  {
        //Do your class stuff here
  }
}
要在我的其他类(例如:Controllers)中访问该类,我可以使用完全限定名

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

如果你认为你的帮助方法也可以用于另一个项目,你可以考虑在一个单独的项目(类型类库)中保持它们“强”。要在项目中使用它,请添加对此项目的引用,并像上面那样使用它(使用完全限定名称或使用导入语句)

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

另一种方法可以是创建一个基本控制器类,并在其中添加公共逻辑,然后从基本控制器派生控制器

public class MyBaseController:Controller
{
   public void CommonFunction()
    {
    }
}
使用像

public HomeController:MyBaseController
{
}

另外,请确保将类的“构建操作”设置为“编译”。
在Visual Studio 2015中,默认情况下,在应用程序代码中创建的每个类(通过右键单击->添加->类)都将“内容”作为构建操作。

@ppumkin-asp.net mvc中没有任何编码实践表明您无法创建自己的文件夹或名称空间。因此,不,它不符合任何编码实践,但也不与它们脱节。这只是你自己控制的事情。是的,我最终使用了文件夹帮助程序,现在它们在任何地方都被重用了。所以这是一些很好的建议。你是对的@MystereMan其实没有一个记录在案的正确方法,但是有很多这样的好建议。ThanksI使用了“物理上独立的项目”,但我在主MVC应用程序中找不到我的类库.config文件。在哪里可以找到设置文件,我只能在\bin文件夹中获得.dll。因此,创建的类将放在哪里,而这些类不适合模型或实用程序类。例如,我有一个类,它的主要功能是存储由方法返回的两个不同的数据结构。
Helpers
Utilities
等等。同样,没有黄金法则。遵循对您的团队更有意义的规则。我知道,一致性比名字更重要。我喜欢这个解决方案,但哪里是保存它的最好地方?