【发布时间】:2013-05-08 20:35:12
【问题描述】:
我正在开发 ASP.NET MVC 4 应用程序,它将用于配置复杂的应用程序。我想要一个配置页面,有多个标签。每个选项卡将用于配置系统中的不同部分,当您单击它时,将使用 AJAX 加载正确的表单(每个配置选项卡将是不同的局部视图)。我想在页面底部有“保存更改”按钮,这将保存整个选项卡中的更改。
由于系统本身是模块化的,我想让配置站点也模块化。这意味着,我希望每个选项卡都是某种插件,向我公开以下方法(通过从接口继承):GetConfigurationPartialView(它将返回带有此选项卡视图模型的局部视图),SaveChanges(其中将配置作为草稿保存到数据库中),GetConfigurationXml 将导出完整的 XML 配置并将其应用到系统上。
我的问题是:
- 你觉得这个设计怎么样?你有更好的主意吗?
- 您建议如何在主视图中实现这个“保存更改”按钮?我如何迭代我的所有插件并调用每个插件的 SaveChanges 方法,将正确的模型对象(这是部分视图的模型)传递给它,而无需深入了解主控制器/视图中的每个插件对象,所以我可以让这个系统易于扩展吗?
- 某些选项卡包括带有数据的网格。我开始研究 Kendo UI 网格。我想让用户在网格上做所有事情,在客户端(删除和添加新行),然后我想在我写的 SaveChanges 方法中获取客户端所做的所有更改的服务器端列表(例如,在伪代码中:changes[0]={Action = Delete, ProductID = 1}, changes[1]={Action=New, ProductID=1, Name="aaa" })。我该怎么做?
谢谢。
【问题讨论】:
-
我认为“KISS”的首字母缩写词很贴切——保持简单愚蠢。不要过度设计,听起来这很难维护
-
如果事实证明这只是复杂的东西,我可能会让它更简单。我正在尝试检查我现在是否可以做更多的工作以在将来节省大量时间(并使其更易于维护),因为新的配置类型会定期添加到该系统中,我想做也很容易将它们添加到配置站点。
标签: asp.net-mvc asp.net-mvc-4 kendo-ui web-architecture