0

我在一个页面中有一组复选框(这是用于临床随机对照试验筛选日志,但该原则适用于具有以下复选框序列的任何内容:

  • 我证明我已经完成了第 1 步(在这种情况下,所有纳入标准都存在)
  • 我证明我已经完成了第 2 步(在这种情况下,所有排除标准都不存在)
  • ...等等

每个步骤都应按顺序打勾。我可以编写逻辑来顺序启用每个复选框。在我看来,逻辑类似于Foolproof 验证的RequiredIfTrue 之类的验证属性,因此属于模型属性的一个属性(比如 EnabledIfTrueAttribute)。但是,这也是与浏览器中信息显示相关的真正逻辑,因此属于视图。

对 MVC 架构有更清晰理解的人能否请教我应该以哪种方式设计事物以及为什么?非常感谢。

4

1 回答 1

1

MVC 的目的是分离数据、视图和绑定它们的逻辑。

验证属性用于验证提交给控制器的数据。数据的收集方式与提交本身无关。

视图决定了数据将如何呈现或收集。

想象一下,其他视图可能决定以其他格式显示您的选项(例如下拉列表显示用户在您的过程中进展了“多远”)。

因此,在您的情况下...

如果未选择选项 3,则验证属性可用于确保未选择选项 4,并在这种情况下拒绝提交。

用户如何选择模型中的选项以及控件的启用/禁用属于视图逻辑。

于 2013-05-26T22:51:09.500 回答