我正在使用 MVC 4 .NET 构建一个 CMS 系统
系统有以下对象:
页面类型
- ID
- 姓名
- 布局 - 布局文件的 URL
页面
- ID
- 父母ID
- 内容(等等……)
模块
- ID
- 姓名
- 类型(模块的类型,如图片库、联系页面、常见问题解答等)
问题
目前我正在努力解决如何在每个页面中实现模块。我以实物形式构建了应用程序,每个页面都有一个内容和一个模块列表。
我的问题是页面布局必须提前知道。所以我会知道在哪里渲染视图中的每个模块。
我想到了这个解决方案:(我现在正在使用的当前解决方案)
为每个页面的类型创建一个布局页面,并将模块类型与每个页面布局相关联。
现在,当用户想要添加一个新页面时,他必须首先选择一个布局(页面类型)以及相关的模块数量。该解决方案中的问题是:
- 我需要为每种类型的页面构建一个布局。
- 用户只能添加与页面布局(类型)相关的模块。
第二种解决方案:
我想到的第二个解决方案是根据关联的模块动态创建布局。我想补充一点,我不知道如何实现它。
在该解决方案中,用户可以添加他喜欢的任意数量的模块。但我不知道如何用模块定义页面结构。
- 如果用户没有创建模块怎么办?它将如何影响布局?
- 如果模块不是一个接一个地出现,我如何创建一个结构?
基本上,有一种方法可以将模块的位置存储在页面中,并在视图中将模块呈现在该位置。
我知道它应该涉及在所需位置为每个模块渲染部分视图。
如果有办法模块对象应该是什么样子?
我的问题够清楚吗?