【问题标题】:ASP.NET MVC - Controller/Actions or Views or ViewModels first?ASP.NET MVC - 首先是控制器/操作或视图或视图模型?
【发布时间】:2010-07-30 05:48:00
【问题描述】:

我熟悉 MVC 插件用于创建事物的各种功能。例如,您可以创建一个控制器,在其上编写一个 Action 方法,然后使用上下文菜单中的“创建视图”功能为其创建一个视图。

问题是,建议先做哪个?

我想我可以自己开始一个这样的方法:

  1. 规划 UI 等的外观和工作方式。
  2. 为我认为可能需要的控制器操作编写单元测试。
  3. 创建控制器(如果要成为那种控制器,可以使用默认的 CRUD 操作)。
  4. 为每个控制器操作创建 ViewModel 类。
  5. 为每个 ViewModel 创建一个强类型视图。
  6. 开始构建视图,在构建视图时通过 ViewModel 回到控制器。

您如何看待这种方法,您会怎么做?

【问题讨论】:

  • 哦,亲爱的,有人投票结束了这个问题,但没有说明原因 - 我能做些什么来改进它,让他们不会有这种感觉吗?

标签: asp.net-mvc


【解决方案1】:

听起来你走在正确的轨道上。控制器是三者中最容易测试的组件。以控制器为先将更容易遵循测试驱动的开发实践。

我对默认视图模板并不十分满意,但是每个 MVC 专家都会将您指向 T4 模板,让您可以自己制作。它们与开箱即用的视图模板一样,与现有的视图模型和控制器一起使用会更有效。

【讨论】:

  • +1 提倡 T4 模板,没有它们就活不下去
【解决方案2】:

我很想先定义 ViewModel,VM 可以包含各种视图所需的所有实体或实体的子集。你如何隔离你的虚拟机取决于你的应用程序以及你如何分解其中的逻辑单元。

一旦我拥有基本形式的 VM,我就会转移到我选择的数据存储所需的模型(除非我有一个现有的数据存储,在这种情况下我会从模型开始)。然后到控制器上。然后,您可以将 TDD 与模拟数据源一起应用,以验证控制器操作返回的 VM 对象是否符合预期。最后,我将为实际生成 UI 的每个控制器操作生成基本的强类型视图(基于 ViewModel 对象)。

然后是使用 Jquery 和 CSS 让它看起来像样的游戏时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多