是否应该在使用 MVC 的每个视图中使用 ViewModel?

2024-06-24

我了解您使用 ViewModel 来存储来自其他模型和源的不同数据以在视图中使用,因为模型并不总是包含您想要的内容。

我试图弄清楚为每个视图使用 ViewModel 是否合适。我问的原因是出于一致性原因。您可以有一个仅需要模型本身的视图,以及另一个必须具有 ViewModel 的视图。将这些混合在您的所有视图之间好吗?或者每个 View 都应该有一个 ViewModel 吗?

了解这一点很重要,因为我的模型与数据库直接相关,因为我使用的是 Entity Framework 4.1 Code First。


这不是要求,但它是最佳实践。

您希望尽可能将数据库与演示文稿解耦,并拥有ViewModel(即使它是相同的)给你这种分离。它还可以保持事物的一致性,这样您就不会出现一些视图带有模型而另一些视图不带有模型的情况。这种类型的设计让您思考您希望视图遵循的所有数据并找出优化方案,查看是否可能发生数据重复,将数据保留在一个位置等。

想想你的ViewModel就像与某人签订的合同一样View.... 这View需要 X 才能工作。

前期要做的工作不多,但最终会得到回报。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否应该在使用 MVC 的每个视图中使用 ViewModel? 的相关文章

  • 以 ISO 8601 格式输出日期

    如何在 C 中获取以下格式的日期 2016 04 26T19 50 48Z include
  • 我们可以在 C# 中定义枚举的隐式转换吗?

    是否可以在 C 中定义枚举的隐式转换 可以实现这一目标的东西吗 public enum MyEnum one 1 two 2 MyEnum number MyEnum one long i number 如果没有 为什么不呢 有一个解决方案
  • 在 2 个 .c 文件之间共享函数

    dir1有dir2 file1 c和file1 h dir2 有 file2 c 现在 如果我想在 file2 c 中访问 file1 c 中定义的函数 我需要在 file1 h 中声明它并在 file2 c 中包含 file1 h 这是一
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 以编程方式更改 Excel 中的字体(Trebuchet MS、Calibari)C#

    我目前正在使用一个 C 应用程序 该应用程序有一个将生成 Excel 文件的类 一切都很顺利 Excel 工作表上填充的数据具有 Times New Roman 字体 我想将其更改为其他字体 Calibari 我怎样才能以编程方式做到这一点
  • 运行时两个注册之间的简单注入器基于动态上下文的注入

    我有一个使用 Simple Injector 进行命令处理程序注册的中介应用程序 并且注入和处理程序均已设置并完美运行 class DoWashingCommandHandler IRequestHandler
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 持续运行的 C# 代码 - 服务还是单独的线程?

    我有一个 NET 4 Web 应用程序 它有 3 个关联的独立项目 DAL BAL 和 UI 我正在使用实体框架进行数据库交互 我有代码循环遍历一堆数据库数据 根据找到的内容调用方法 然后更新数据库 我希望这段代码一直运行 同时 我希望用户
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • 通过 jQuery ajax 将 JSON 对象数组发送到 MVC3 操作方法

    模型绑定器不支持 JSON 对象数组吗 下面的代码在发送单个 JSON 域对象作为 ajax post 的一部分时起作用 但是 当发送 JSON 域对象数组时 action 参数为 null var domains DomainName t
  • 如何让 PCRE 与 C++ 一起使用?

    这是一个新手问题 但我希望我能尽可能清楚地表达我的问题 我正在尝试用 C 进行模式匹配 我已经从以下位置下载了 PCRE 的 Win32 版本here http gnuwin32 sourceforge net packages pcre
  • 内存不足异常

    我正在使用 C 和 asp net 开发一个网络应用程序 我一直收到内存不足的异常 该应用程序的作用是从数据源读取一堆记录 产品 可能是数百 数千 通过向导中的设置处理这些记录 然后使用处理的产品信息更新不同的数据源 虽然有多个 DB 类
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 预览MouseMove 与 MouseMove

    我有相当多的 XAML 经验 但最近我注意到我的大多数同事都使用预览鼠标移动代替鼠标移动事件 我一直用鼠标移动它对我很有帮助 但我忍不住问我什么时候应该使用预览鼠标移动什么时候鼠标移动 有什么区别 各自有什么优点和缺点等等 PreviewM
  • 如何以一对一/零关系更新员工和身份用户

    我正在尝试更新员工记录 也想更新身份用户 如果我先单独更新身份用户 例如 UserManager Update user Context Entry employee State System Data Entity EntityState

随机推荐

  • 在python中缓存数据库数据

    在项目中 我需要缓存从每个请求获取的数据库数据 这样从下次开始 将从缓存而不是数据库中选取数据 表行 从而提高性能 在数据库中 我有超过 10M 的数据行 我正在浏览烧杯缓存文档 从中看来它只会将函数和参数一起缓存为键 那么这如何存储我的主
  • JFreeChart:如何更改XYPlot前景色?

    JFreeChart XYPlot 背景颜色更改为setBackgroundPaint 但好像没有对应的setForegroundPaint XYPlot plot XYPlot chart getPlot plot setBackgrou
  • 如何向heroku节点服务器添加python依赖项?

    我有一个运行 Node 的 Heroku 应用程序 但我需要能够在此服务器上运行 Python 脚本 我正在尝试安装我的 Python 依赖项 但无法让它工作 我已将 python 和节点构建包添加到我的项目中 我已创建虚拟环境并成功安装了
  • .Net 中的 Midi 实现

    有人对在 C Winforms 中编写基于 MIDI 的应用程序有任何指导或建议吗 我最近购买了一个新的效果踏板 它具有完整的 MIDI 实现 或者我相信 但制造商认为不发布图书馆员 补丁编辑应用程序是合适的 除了将键盘插入另一个 MIDI
  • 启动包中没有指定postgresql用户名

    public class HelloPostgreSQLActivity extends Activity TextView resultArea Override public void onCreate Bundle savedInst
  • Erlang:远程调用与发送消息

    我想在远程节点上执行一些过程 我不确定哪种方法是最好的方法 我可以写一个rpc call去做这个 或通过以下方式发送消息Remote call some procedure 到节点来启动程序并使用receive等待回复 那么erlang中哪
  • 将数据从 Django 传递到 D3

    我正在尝试使用 Django 和 D3 js 编写一个非常基本的条形图 我有一个名为 play 的对象 其中包含一个名为 date 的日期时间字段 我想要做的是显示一段时间内按月分组的播放次数 基本上我有两个问题 如何将这些内容按月分组并统
  • 应用程序在后台时如何处理 iOS 远程通知

    我正在通过苹果推送通知开发iOS推送通知功能 现在当我的应用程序处于后台或前台时我收到了正确的通知 但我想当我的应用程序处于后台时基本上当我的应用程序处于后台时处理远程通知只是显示来自有效负载的警报消息 实际上我只是想自定义我的远程通知 c
  • 亚马逊网络服务工作示例

    我进行了各种搜索 尝试让产品广告 API 正常工作 我尝试了来自这些论坛和互联网的许多示例 但它不起作用 有人讨论过修改 WSDL 但这也不起作用 这是我去过的地方 https affiliate program amazon com gp
  • NSProxy 如何“将自身转变为另一个对象”?

    The NSProxy 类参考 http developer apple com library mac documentation Cocoa Reference Foundation Classes NSProxy Class Refe
  • 如果运行战争,oracle 和 sybase 数据库连接会出现 ClassNotFoundError,但在 eclipse 中工作正常

    我在应用程序中构建了一个功能来测试数据库连接 在本地 我能够测试所有三个数据库 sqlserver sybase 和 oracle 但如果创建 war 文件并在 Windows Linux 服务器中运行 war 则 Oracle 和 syb
  • 过滤器链因 [:login_required] returned_or_redirected 而停止

    希望我能很好地解释这一点 但如果需要更多信息 请告诉我 我正在构建一个表单 用户可以在其中创建 事件 此次事件有如下关系 属于 客户 客户有很多事件 belongs to 用户 用户有很多事件 has one incident status
  • 如何在Python中检查神秘的反序列化对象

    我正在尝试将 JSON 加载回对象中 loads 方法似乎工作正常 但该对象似乎没有我期望的属性 我怎样才能检查 检查我拥有的对象 这是基于网络的代码 results Subscriber firstname Neal lastname W
  • 获取背景图片url值

    我正在尝试获取背景图像 url 的值 url 直接在元素标签中使用 style 属性内联设置 如下所示 a style background image none a 我尝试做 var url this css background ima
  • 使用 ESC 关闭引导模式

    我正在使用 2 个模态 第一个模态包含一个表单 第二个模态在表单中发生错误时显示 第二个模式仅包含带有错误消息的文本 My problem is that when 2nd modal show up and I press Esc the
  • 如何在heroku-django项目中设置环境变量?

    我的 settings py 中有这段代码 EMAIL HOST smtp sendgrid net EMAIL HOST USER os environ get EMAIL HOST USER EMAIL HOST PASSWORD os
  • 添加依赖项会出现错误:“react-scripts”未被识别为内部或外部命令、可操作程序或批处理文件”

    还有其他人遇到这个问题吗 当我使用 create react app 创建一个新项目 并且添加除库存依赖项之外的任何依赖项 即react redux redux react router dom 时 我收到以下错误 react script
  • 为什么 CSV 文件中的多行单元格在 Excel 中每行末尾都显示有问号?

    我目前正在开发一个项目 我们希望允许用户将数据导出到 CSV 我们提供的一些数据在单个单元格中具有多个值 因此我们使用标准 CSV 方法将每个值放在自己的行上 Column A Column B Column C Value A Value
  • 基于每个应用程序域的字符串哈希码计算的实际使用

    在 NET 4 5 中 可以选择使用随机字符串哈希代码生成 这意味着 同一个字符串在不同的应用域中计算出的哈希码将会不同 看http msdn microsoft com en us library jj152924 aspx http m
  • 是否应该在使用 MVC 的每个视图中使用 ViewModel?

    我了解您使用 ViewModel 来存储来自其他模型和源的不同数据以在视图中使用 因为模型并不总是包含您想要的内容 我试图弄清楚为每个视图使用 ViewModel 是否合适 我问的原因是出于一致性原因 您可以有一个仅需要模型本身的视图 以及