【发布时间】:2010-09-14 14:33:06
【问题描述】:
我有一个建立为 ASP.NET 3.5 Web 应用程序的 Web 应用程序。我们最近对其进行了修改,将 MVC 混合到应用程序中以获得一些新功能。
现在有了它,我们希望尽可能利用 MVC 开始将应用从笨重的网络表单“转换”为更易于维护和测试的 MVC 应用。
在添加一些新功能时刚刚出现的问题是哪个控制器应该负责某个操作。
让我更详细一点。
该场景涉及我们应用程序中的至少三个主要概念领域。应用程序需要能够在搜索屏幕上时为默认的 MAP 视图设置 PREFERENCE。偏好、地图和搜索都是我们系统中的主要概念。此外,此首选项设置(基本上,地图应该从哪里开始)可用于在多个搜索页面中设置初始地图(基本上是搜索首选项)。
应用中现有的 MVC 控制器是一个 MAPCONTROLLER,有 3 个操作负责生成 HTML 或 JSON 数据以放置在地图上。
我们现在需要做的是添加一个 MVC 路由(控制器 + 动作),以允许客户端视图保存一些信息作为他们的偏好。基本上,每当他们在搜索页面上查看地图时,他们都可以单击“记住这是我的默认地图视图”的按钮,从那时起,他们的地图将始终以该视图开始。
我的问题是(我很抱歉,但我想非常清楚,我看到太多的问题没有上下文可以帮助)。我的控制器应该代表什么?我显然涉及 3 个主要的系统领域。使用 SaveDefaultMapView 操作(不需要视图)创建新的 SEARCH 或 PREFERENCES 控制器是否合适,或者在现有 MAP 控制器上搭载,即使这个新功能更多地是关于搜索和偏好而不是实际地图生成? MVC 控制器是否应该主要与屏幕(搜索页面/搜索子系统)、被操作的域/数据(首选项)或在采取行动时正在审查的非常具体的视觉元素(地图)对齐?
所有示例和训练营项目都很好,但它们过于简洁和简化,无法应用于大型遗留应用程序。如何围绕一个将许多领域关注点合并到一个网页中的系统来设计他们的 MVC 组件?
谢谢大家!
【问题讨论】:
标签: model-view-controller controller modeling