Asp.net Mvc:创建一个简单的cms

时间:2009-09-05 16:58:16

标签: asp.net-mvc content-management-system

我正在为自己和我的客户建立自己的CMS。该系统主要用于小型网站< 10页。对于更大的项目,我很可能会使用现有系统(MojoPortals,Umbraco,Kooboo)。我之所以需要我自己的系统,是因为我有完全的控制权,而且因为现有的系统大多数都是膨胀的功能,我不会用于小型项目。我也在学习Asp.net Mvc,这是构建我自己系统的另一个原因。

这些是我尝试的一些系统(比其他系统更多):

我喜欢的是MojoPortals。主要是因为左中右+模块系统。

所以我的目标是建立一个可以创建页面的系统,每个页面都有一个左侧,中间和右侧的模块占位符。模块将是非常基本的(文本,Html,图像)。该系统还需要易于部署和重用。

我已经开始使用我的系统了。

页面对象如下所示:

public class Page
{
    public int PageID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Title { get; set; }
    public IEnumerable<Module> Modules { get; set; }
}

Module对象如下所示:

public class Module
{
    public int ModuleID { get; set; }
    public string ModuleTitle { get; set; }
    public string ModuleType { get; set; }
    public string ModuleLocation { get; set; }
    public Dictionary<string, string> ModuleValues { get; set; }
}

这就是我的View的样子: www.codepaste.com

稍后我可能会添加一个网站对象,其中包含将显示哪个视图(模板)的信息。

我目前提出的问题主要是关于这个观点。我链接的视图有一些基本代码,首先检查模块位置,然后在正确的位置显示所有模块信息。我希望那部分易于重复使用。所以我想到制作一个强类型的局部视图来做左,右和中间的东西。对于模块我也考虑使用部分视图并渲染某个moduleType的正确部分。所以文本会有部分,html会有一个等等。我不确定这是否是正确的技术。

那么我应该使用局部视图来处理左侧,中间和右侧的东西并使用局部视图来加载模块吗?

如果有人有关于构建基于模块的cms或技术/结构的其他信息,我可以使用它也非常棒。

提前致谢,Pickels。

1 个答案:

答案 0 :(得分:0)

是的,这是最好的选择。使用css为每个模板设置“结构基础”,并使每个模块将自己的视图加载到正确的模板部分。假设您的模板在公共标题下有一个顶级菜单,您可以在其中显示公司的徽标和内容。在数据库中插入有关模块和模板顶部的信息(您应该在数据库中完全创建一个关于模板的表结构,因此系统可以知道每个模块与每个页面相关的位置,并且只需使用系统将每个页面请求中所需的模块放到正确的位置,使其将自己的视图加载到该位置。

希望你理解我的写作:)