【发布时间】:2010-03-17 18:24:49
【问题描述】:
如果从一个角度来看,用户输入了一些无效数据,例如:
电子邮件:bill@apple.com
然后我希望控制器:
- 不将数据放入模型中
- 为文本框着色偏红
- 不允许用户保存
但如果用户在不同的视图中输入相同的无效数据,我希望控制器:
- 将数据放入模型中
- 将文本框染成红色
- 允许用户保存
但如果用户在不同的视图中输入相同的无效数据,我希望控制器:
- 将数据放入模型中
- 为文本框着色蓝色
- 允许用户保存
另一个视图可能会:
- 将数据放入模型中
- 让文本框不着色
- 允许用户保存
另一个视图可能会:
- 自动更正数据,将其放入模型中
- 为文本框着色偏红
- 允许用户拥有
另一个视图可能会:
- 自动更正数据,将其放入模型中
- 使用新数据更新视图
- 颜色文本框蓝色
- 允许用户保存
[无限]
如果不对 n-views 使用 n-controllers,我该怎么做?
更新
我正要在 stackoverflow 上提出一个新问题,“我如何让控制器根据视图改变其行为。”但后来我意识到我已经使用了完全相同的问题标题。
今天的例子:
如果输入的数据对于将要进入的某些数据库表的某些部分来说太长,则执行验证并拒绝保存。
除非数据来自另一个视图。在这种情况下会自动修剪某些字段以适应数据库规则
除非数据来自另一个视图。在这种情况下,要求数据库抛出
truncated异常
在我读过的书籍/文章/博客中,我从来没有看到 MVC 的许多实际问题 - 难怪我不使用它。
【问题讨论】:
-
OMG
<kbd>太酷了.. 不知道 -
你在戳我的问题源代码!?耻辱!甚至没有提供答案:(
-
不签出源代码太酷了。我已经提出了一个答案:)
-
哦 suuuure ....*现在*您已经提出了答案。这并没有阻止你被分散......哦,看起来像一只松鼠!
标签: model-view-controller language-agnostic