在MVC文件夹结构中,通用类文件应该驻留在哪里?例如,我有一个类来确定要使用的正确的DataContext,所以我不会在每个控制器中重新发明轮子。它应该存在于Controllers文件夹中,即使它不是控制器吗?它应该与模型一起使用,因为它与数据库相关,即使它不是模型吗?可能是Views \ Shared文件夹?或者Content是这种东西的全能文件夹?我相信我可以把它放在任何地方,但我想知道“正确”的地方在哪里。
答案 0 :(得分:9)
它不是控制器,内容或视图,所以不要使用它们。它听起来与您的模型最密切相关,因此您可以将其放在名为“Helpers”或“Utility”的子文件夹下的模型中。或者您可以添加另一个名为Services的顶级文件夹并将其放在那里。这就是我放置所有app逻辑的地方,控制器和模型之间的中间人。
答案 1 :(得分:3)
如果你看看Rob的MVC店面:单独的类库项目(如Commerce.MVC.Data)
答案 2 :(得分:0)
如果它本身有用(想想围绕它构建的命令行工具),请将它放在Models文件夹中。如果它仅用作控制器的帮助程序,请将其放在Controllers文件夹中。
答案 3 :(得分:0)
这实际上取决于它的作用,如果它访问数据应该在数据访问层中,否则你可以把它放在控制器文件夹中。
答案 4 :(得分:0)
dmajkic,
为什么将它分成自己的区域?如果它的BLL代码应该在控制器文件夹中,如果它的DAL相关项应该在模型中。我可以理解一个项目是否变得庞大并且你想创建一些子文件夹,这应该不是问题。但是将代码放在另一层真的会破坏MVC的目的你不觉得吗?
答案 5 :(得分:0)
拥有一个单独的DataAccess程序集,将该类设为内部并将其命名为DataContextFactory。