【发布时间】:2010-12-29 06:11:24
【问题描述】:
我在域/应用程序逻辑和用户界面逻辑之间感到困惑。为了说明我试图确定的内容,我将在下面描述一个虚构的程序以进行说明:
(1) 想象一个带有一组 3 个级联下拉菜单的小型应用程序。当您选择一个下拉菜单时,它会触发一个 jQuery Ajax GET,该 GET 最终会到达一个 MVC 控制器,提供先前选择的下拉菜单的选定值。控制器为下一个下拉菜单返回允许的选项。 javacript(在视图中)将这些结果排列到下拉列表中。等等。因此,每次您选择一个下拉菜单时,都会填充下一个下拉菜单。
(2) 现在扔扳手..有一些例外。假设如果用户在第一个下拉菜单中选择“FOO”或“BAR”,那么行为会发生变化,因此第二个下拉菜单被禁用,而第三个下拉菜单将显示一个 texbox。
我的问题是,在 MVC 的上下文中,这个“决策”逻辑的合适位置是什么?比如我在 (2) 中解释的负责做出这些决定的代码。我把它放在最方便的地方就是在视图的 javascript 中。我只是编写了javascript来测试第一个框是“FOO”还是“BAR”,然后禁用第二个下拉菜单,并将第三个下拉菜单换成文本框。但这对我来说并不完全正确。因为它看起来应该是业务逻辑,因此代码应该属于某个地方的域层。但这也感觉不太对。
所以我觉得我在绕圈子。有人能解释一下这个小设计吗?
【问题讨论】:
-
天哪,这个问题在我的停机时间困扰着我。
标签: asp.net asp.net-mvc architecture domain-driven-design