首先,我已经做了很长一段时间的php程序员,我是一个新的mvc程序员。我做了几个小网站,每个网站最多有一个或两个控制器。但我已经建立了一个网站,这将是一个非常重要的网站。将有大量数据传递给视图。现在,通常我每次都尝试使用模型方法,而不是ViewBag或ViewData方法。如果视图需要更多数据,那么我将更改模型类,然后重新编译项目。特别是,如果主题是索引页,则传递给索引视图的数据每次都会发生变化。在一个大型网站中,我将使用大量使用不同模型的局部视图。因此,每次我都必须更改索引的模型,以支持索引视图中的那些局部视图。如果我将一个新的局部视图添加到索引视图中,我必须将局部视图的模型添加到索引的模型中。每次启动网站时,我都会为索引视图实现一个IndexModel类。然后,每次向索引添加新的局部视图时,都会向该模型添加属性。现在,这是一种正确的方法,或者我应该使用ViewBag或ViewData来处理偏导模型。我认为真正的问题是我们什么时候应该使用模型方法,什么时候不应该……如果您能分享您的经验,我将不胜感激。
发布于 2011-09-24 20:53:26
您应该始终使用MVC方法,特别是对于简单站点,它可以节省您的时间,并使应用程序更易于理解。
如果你写的东西超过两页,你需要使用MVVM模式(MVC的增长),在这种情况下,你将避免使用ViewModels的“部分模型”。
模型必须仅包含业务逻辑。
如果您总是使用ViewModel (而不是模型)从视图返回数据并将其传递给视图,效果会更好,因为它提供了一些安全性。
为了简化将数据从模型复制到ViewModels的过程,可以使用AutoMaper和EmitMapper等工具。
ViewBag和ViewData您应该只使用额外的数据,如DropDown的项集合,或一些视图文本,如页面标题。
MVVM模式的另一个优点是更好的可测试性。如果您编写并支持真正的hugh站点,那么您可以为代码的某些负责部分编写测试。
有关更多详细信息,请查看google - MVVM,ASP-MVC。
如果我不理解你的问题或遗漏了什么,请写在评论中(“添加评论”参考)。
发布于 2011-09-24 21:32:32
我个人更喜欢保持我的网站的一致性,总是使用模型+视图模型(无论网站有多大),尽管有额外的工作(无论如何都不是很多)。
它有助于提高可维护性。我知道所有东西都存储在哪里,以及如何编码到站点中。
https://stackoverflow.com/questions/7539069
复制相似问题