【问题标题】:Where can I put custom classes in ASP.NET MVC?在 ASP.NET MVC 中我可以在哪里放置自定义类?
【发布时间】:2012-07-17 04:20:09
【问题描述】:

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

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

【问题讨论】:

    标签: .net asp.net-mvc


    【解决方案1】:

    您可以在根目录下创建一个名为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 语句)

    【讨论】:

    • @ppumkin - asp.net mvc 中没有编码实践表明您不能创建自己的文件夹或命名空间。所以不,它不符合任何编码实践,但也不符合它们。这只是您自己控制的事情。
    • 是的,我最终使用了 Helpers 文件夹,它们现在可以在任何地方重复使用。所以这是一些很好的建议。你是对的@MystereMan,没有真正记录在案的正确方法,但有很多这样的好建议。谢谢
    • 我使用了“物理上独立的项目”,但在我的主 MVC 应用程序中找不到我的类库 .config 文件。我在哪里可以找到设置文件,我只得到\bin文件夹中的.dll。
    • 那么,创建的类在哪里,但不适合模型或实用程序类。例如,我有一个类,它的主要功能是存储两个不同的数据结构,由一个方法返回。
    • HelpersUtilities 等。同样,没有黄金法则。遵循对您的团队更有意义的事情。恕我直言,一致性比名称重要。
    【解决方案2】:

    您可以将帮助类放在任何您认为合乎逻辑且方便的地方。

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

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

    在 Razor 视图中,您将使用

    @using MyProject.Helpers
    

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

    using MyProject.Helpers;
    

    【讨论】:

      【解决方案3】:

      另一种方法是创建一个基本控制器类并在其中添加您的通用逻辑,然后从您的基本控制器派生您的控制器。

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

      使用类似...

      public HomeController:MyBaseController
      {
      }
      

      【讨论】:

      • 我喜欢这个解决方案,但最好的保存位置是哪里?
      【解决方案4】:

      你可以新建一个工程,然后把常用的类放到工程里面。如果你想使用它们,只需添加引用项目。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2015-07-25
          • 2023-03-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多