首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类在NerdDinner中的放置

类在NerdDinner中的放置
EN

Stack Overflow用户
提问于 2011-02-26 19:15:30
回答 2查看 227关注 0票数 1

我正在学习ASP.NET MVC,并查看ASP.NET MVC示例应用程序NerdDinner

  1. 文件夹"Models“包含一个名为Dinner.cs的类。这是主要的晚餐实体。这个班不应该在别的地方吗?例如“域”?相反,是否应该将viewmodel类放在包含晚餐信息的Models文件夹中?
  2. 为什么文件"PaginatedList.cs“位于名为"Helpers”的文件夹中。该文件不应该在文件夹:“模型”中,因为它是提供给视图的吗?

任何有关这方面的清洁将是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-26 19:39:26

  1. 当然,你的想法是对的。NerdDinner仅仅是为了概念表示的目的而设计的,并不是真正地伪装所有的最佳实践。随着您自己的项目的发展,它变得越来越明显。您将将域实体/服务/存储库放在单独的文件夹中,然后是单独的项目,然后可能是单独的解决方案。您将发现自己将此文件夹重命名为ViewModels,以使其他从事项目工作的人员更加清楚。
  2. PaginatedList可以是一个ViewModel,并包含与分页相关的数据。然后可以将其放到ViewModels文件夹中。但是我相信你在NerdDinner中所拥有的只是一个简单的视图助手来生成分页标记。而且,帮助者可能没有那么严格的“视图”或" ViewModel“--它们可以包含简单的逻辑,它们处于视图和ViewModel之间的中间:)。还要注意的是,PaginatedList更多地是一个“框架”关注点,而不是一个“特定解决方案”。所以你不能把它放在“视图”或者“模型”文件夹中。所以“帮手”对NerdDinner来说已经足够好了。在真正的解决方案中,您最好让它变得通用,将其包含在MVC之上的“框架”中。
票数 1
EN

Stack Overflow用户

发布于 2011-02-26 19:51:03

对于第一个问题,Dinner.cs文件包含Dinner类的一部分以及好友类上的一些验证属性。IMHO将这个文件放入Model文件夹是完全正确的,因为它实际上是解决方案模型的一部分。

对于第二个问题,PaginatedList是一种数据结构,允许您一次查看数据的某个“页面”(一组固定的元素)。我并不认为它是一个ViewModel,一个“帮手”正是它的本质。

我还要补充的另一件事是,如果您有一些ViewModels传递给您的视图,而不是实际的模型类,或者因为您有一组特定的数据元素要传递,我认为为此设置一个单独的ViewModel文件夹是合理的。

希望这会有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5129153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档