我正在尝试创建一个强类型视图模型,John Sheehan建议here。它应该去哪里?我可以为模型,视图和控制器自己辩论。
答案 0 :(得分:4)
它应该放在Web应用程序的“Models”目录中。根据定义,ViewModel 特定于一个或多个视图,因此属于Web应用程序,而不是核心。
你可以在使用它们的控制器中定义它们,但这不能扩展。与在视图代码中定义类相同。即使每个文件一个类意味着更多文件,它也更容易找到代码并且更容易维护。
我经常为每个控制器创建一个子文件夹,所以我最终得到了像 Web.Models.Foo.BarViewModel 这样的东西。
答案 1 :(得分:3)
如果将它们放在PresentationModel目录中的Domain项目中,并且像@Seth Pretry-Johnson那样,我将它们放在单独的Controller目录中。
这是我项目的整体结构:
答案 2 :(得分:0)
我将实际的模型类放在Models文件夹中。
/Controllers
/Models
/Entities
/Mappings
/ValueTypes
/ViewModels
这样的事情。我是Fluent NHibernate的忠实粉丝。
答案 3 :(得分:0)
它可以去任何你想去的地方,为什么你需要有人告诉你在哪里上课?
很多人都有错误的想法,除非你把你的课程放在按功能分组的某个特定目录中,否则一切都行不通。对于其他框架可能也是如此,但是对于ASP.NET MVC,情况并非如此。代码编译为程序集。