ASP MVC - 顺序启用逻辑 - 它是属于模型注释还是视图?

时间:2013-05-26 22:22:34

标签: asp.net-mvc architecture

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

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

应按顺序勾选每个步骤。 我可以编写逻辑来顺序启用每个复选框。在我看来,逻辑类似于Foolproof validation的RequiredIfTrue等验证属性,因此属于model属性的属性(比如EnabledIfTrueAttribute)。然而,这也是与浏览器中的信息显示有关的逻辑,因此属于视图。

能够更清楚地了解MVC架构的人请告诉我应该以哪种方式设计内容以及为什么?非常感谢你。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

如果选项3不是,则可以使用验证属性来确保未选择选项4,如果是这种情况,则拒绝提交。

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