2
首先,我是一个长期的php程序员,我是一个新的mvc程序员。我做了一些小型网站,每个网站最多只有一两个控制器。但我已经创建了一个非常重要的网站。将有大量数据传递给视图。

现在,通常我每次都尝试使用模型方法而不是 ViewBag 或 ViewData 方法。如果视图需要更多数据,那么我更改模型类,然后重新编译项目。特别是,如果主题是索引页面,则传递给索引视图的数据每次都会更改。在一个大型网站中,我会使用很多使用不同模型的局部视图。因此,每次,我都必须更改索引的模型以支持索引视图中的那些部分视图。如果我在索引视图中添加一个新的局部视图,我必须将局部模型添加到索引模型中。

每次启动网站时,我都会为索引视图实现一个 IndexModel 类。然后,每次向索引添加新的局部视图时,我都会向该模型添加属性。

现在这是一种正确的方法,还是应该将 ViewBag 或 ViewData 用于局部模型。我认为真正的问题是我们什么时候应该使用模型方法,什么时候不应该......

如果您分享您的经验,我将不胜感激。

4

2 回答 2

3

您应该始终使用的 MVC 方法,特别是对于简单的站点,它可以节省您的时间并使应用程序更易于理解。

如果您编写的内容大于两页,则需要使用 MVVM 模式(MVC 的增长),在这种情况下,您将避免在 ViewModels 中使用“部分模型”。

模型必须只包含业务逻辑。

如果您总是使用 ViewModel(而不是模型)从视图返回数据并将其传递给视图,那就更好了,因为它提供了一些安全性。

为了方便将数据从模型复制到视图模型的过程,请使用 AutoMaper 和 EmitMapper 之类的东西。

ViewBag 和 ViewData 你应该只用于额外的数据,比如 DropDown 的项目集合,或者一些视图文本,比如页面标题。

MVVM 模式的另一个优点是更好的可测试性。如果您编写并支持非常庞大的站点,您可能会为某些负责的代码部分编写测试。

有关更多详细信息,您可以查看 google - MVVM、ASP-MVC。

如果我在您的问题或遗漏中有什么不明白的,请将其写在评论中(“添加评论”参考)。

于 2011-09-24T12:53:26.273 回答
0

我个人更喜欢让我的网站保持一致,并始终使用 Model + Viewmodel(无论网站有多大),尽管有额外的工作(反正也没多少)。

它有助于可维护性。我知道所有内容在哪里以及如何存储和编码到站点中。

于 2011-09-24T13:32:31.607 回答