【问题标题】:Where is the best place to put this logic in an MVC design?将此逻辑放在 MVC 设计中的最佳位置在哪里?
【发布时间】:2016-06-02 21:08:05
【问题描述】:

我正在考虑在 ViewModel 类上设置一个 ReadOnly 属性,该属性返回一个格式化字符串,显示从同一类中的两个 Date 属性派生的日期范围。

该逻辑最好属于控制器还是视图模型?

如果最好的地方是控制器,那么我只需要 ViewModel 中的一个读/写属性,即 DateRangeForDisplay。如果可以将它放在 ViewModel 中,我将有 2 个日期属性和字符串只读 DateRangeForDisplay 属性。

【问题讨论】:

    标签: model-view-controller


    【解决方案1】:

    可能强烈基于意见,但是:

    控制器根本不应该有数据属性。他们的工作是从 View/UI 获取事件并将其传播到 Model/ViewModel(具体术语取决于所选的架构风格)。

    模型不应该关心数据是如何表示的,因此不具有这样的属性,除非出于某些性能原因。

    ViewModels 是一种装饰带有状态和格式化数据的模型,这就是为什么这种组合的日期属性应该在 ViewModel 中。

    我想说这对于 asp.net(或其他服务器应用程序模型)尤其如此,其中 viewModel 或多或少只是属性包,用于在将所有状态返回给客户端之前将所有状态放在一起。

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      相关资源
      最近更新 更多