Asp.net mvc 在大型ASP.NET MVC网站中,我们应该如何将数据传递给视图 首先,我已经做了很长一段时间的php程序员,我是一个新的mvc程序员。我做了一些小网站,每个网站最多有一个或两个控制器。但我已经建立了一个网站,这将是一个非常重要的网站。将有大量数据传递给视图 现在,通常我每次都尝试使用模型方法,而不是ViewBag或ViewData方法。如果视图需要更多数据,那么我将更改模型类,然后重新编译项目。特别是,如果主题是索引页,则传递到索引视图的数据每次都会更改。在一个大型网站中,我将使用许多使用不同模型的局部视图。因此,每次我都必须更改索引的模型,以支持索引视图中的部分视图。如果我在索引视图中添加一个新的分部视图,我必须将分部的模型添加到索引的模型中 每次启动网站时,我都为索引视图实现IndexModel类。然后,每次向索引添加新的局部视图时,我都会向该模型添加属性 现在,这是一种正确的方法,还是应该使用ViewBag或ViewData作为partials的模型。我认为真正的问题是我们什么时候应该使用模型方法,什么时候不应该 如果您能分享您的经验,我将不胜感激。

Asp.net mvc 在大型ASP.NET MVC网站中,我们应该如何将数据传递给视图 首先,我已经做了很长一段时间的php程序员,我是一个新的mvc程序员。我做了一些小网站,每个网站最多有一个或两个控制器。但我已经建立了一个网站,这将是一个非常重要的网站。将有大量数据传递给视图 现在,通常我每次都尝试使用模型方法,而不是ViewBag或ViewData方法。如果视图需要更多数据,那么我将更改模型类,然后重新编译项目。特别是,如果主题是索引页,则传递到索引视图的数据每次都会更改。在一个大型网站中,我将使用许多使用不同模型的局部视图。因此,每次我都必须更改索引的模型,以支持索引视图中的部分视图。如果我在索引视图中添加一个新的分部视图,我必须将分部的模型添加到索引的模型中 每次启动网站时,我都为索引视图实现IndexModel类。然后,每次向索引添加新的局部视图时,我都会向该模型添加属性 现在,这是一种正确的方法,还是应该使用ViewBag或ViewData作为partials的模型。我认为真正的问题是我们什么时候应该使用模型方法,什么时候不应该 如果您能分享您的经验,我将不胜感激。,asp.net-mvc,model-view-controller,model,viewdata,viewbag,Asp.net Mvc,Model View Controller,Model,Viewdata,Viewbag,您应该始终使用MVC方法,尤其是对于简单的站点,它可以节省您的时间,并使应用程序更易于理解 如果您编写的页面大于两页,则需要使用MVVM模式(MVC的增长),在这种情况下,您将避免在ViewModels中使用“部分模型” 模型必须只包含业务逻辑 如果始终使用ViewModel(而不是模型)从视图返回数据并将其传递给视图,则效果会更好,因为它提供了一些安全性 为了简化将数据从模型复制到视图的过程,请使用Automper和EmitMapper等工具 ViewBag和ViewData只应用于其他数据,

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

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

模型必须只包含业务逻辑

如果始终使用ViewModel(而不是模型)从视图返回数据并将其传递给视图,则效果会更好,因为它提供了一些安全性

为了简化将数据从模型复制到视图的过程,请使用Automper和EmitMapper等工具

ViewBag和ViewData只应用于其他数据,如下拉列表中的项目集合,或某些视图文本,如页面标题

MVVM模式的另一个优点是更好的可测试性。如果您编写并支持真正的hugh站点,您可以为代码的某些负责部分编写测试

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


如果我对您的问题或遗漏有不理解的地方,请将其写在评论中(“添加评论”参考)。

我个人更喜欢保持我的网站的一致性,并始终使用Model+Viewmodel(无论网站有多大),尽管需要做额外的工作(这并不多)


它有助于提高可维护性。我知道所有内容都存储在何处以及如何编码到网站中。

您已经完全回答了我的问题。谢谢你的好消息。现在我将深入研究mvvm模式。