asp.net-mvc - 我们应该如何将数据传递到大型 ASP.NET MVC 网站中的 View

标签 asp.net-mvc model-view-controller model viewdata viewbag

首先,我已经成为一名php程序员很长时间了,我最近是一名mvc程序员。我做了一些小型网站,每个网站最多只有一两个 Controller 。但我已经建立了一个网站,它将成为非常重要的网站。将有大量数据传递给 View 。

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

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

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

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

最佳答案

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

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

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

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

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

ViewBag 和 ViewData 应该仅用于附加数据,例如 DropDown 的项目集合,或某些 View 文本(例如页面标题)。

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

更多详情可以查看google - MVVM, ASP-MVC。

如果我对您的问题不理解或遗漏,请在评论中写下(“添加评论”引用)。

关于asp.net-mvc - 我们应该如何将数据传递到大型 ASP.NET MVC 网站中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539069/

相关文章:

Python/机器学习 : Can I combine several prediction models into one

c++ - 如何获取 3d 维数组并将其转换为模型?

ruby-on-rails - 我应该在 Rails 中为 Redis 创建一个新类吗?

asp.net-mvc - 阻止 bingbot 抓取我的网站

asp.net-mvc - 我在哪里可以在 Orchard 模块中初始化 AutoMapper 映射?

asp.net-mvc - 复合主键与来自两个不同表mvc的两个外键

c# - 在 asp.net MVC Controller 中调用异步外部 Web 服务

asp.net-mvc - IIS Express 自动为我的项目禁用匿名身份验证,为什么?

asp.net-mvc - Spark 中嵌套了 "Layouts"?

php - PDO MVC 将数据从数据库回显到页面