【发布时间】:2010-02-25 01:03:08
【问题描述】:
我正在尝试创建一个强类型视图模型,正如 John Sheehan 建议的 here。它应该去哪里?我可以为模型、视图和控制器为自己提出论据。
【问题讨论】:
标签: asp.net-mvc model-view-controller viewmodel
我正在尝试创建一个强类型视图模型,正如 John Sheehan 建议的 here。它应该去哪里?我可以为模型、视图和控制器为自己提出论据。
【问题讨论】:
标签: asp.net-mvc model-view-controller viewmodel
它应该位于网络应用程序的“模型”目录中。 ViewModel 根据定义特定于一个或多个视图,因此属于网络应用程序,而不是核心。
您可以在使用它们的控制器中定义它们,但这不能扩展。与在视图代码中定义类相同。尽管每个文件一个类意味着更多的文件,但它更容易找到代码并且更容易维护。
我经常为每个控制器创建一个子文件夹,所以我最终会得到 Web.Models.Foo.BarViewModel 之类的东西。
【讨论】:
如果将它们放在我的域项目中的 PresentationModel 目录中,并且像 @Seth Pretry-Johnson 一样,我将它们放在单独的 Controller 目录中。
这是我一个项目的整体结构:
HTH(并且不会引发更多问题.. ;-),
查尔斯
【讨论】:
我将实际的模型类放在 Models 文件夹中。
/Controllers
/Models
/Entities
/Mappings
/ValueTypes
/ViewModels
类似的东西。我是 Fluent NHibernate 的忠实粉丝。
【讨论】:
它可以去任何你想去的地方,为什么你需要有人告诉你在哪里放置一个类?
很多人有一个错误的想法,即除非您将类放在某个按功能分组的特定目录中,否则事情将无法正常工作。这对于其他框架可能是正确的,但对于 ASP.NET MVC,情况并非如此。代码被编译成程序集。
【讨论】: