我正在使用ASP MVC编写自定义CMS。
我想让用户定义自己的页面(视图)。然后应该在导航菜单中显示该页面结构。所以基本上我正在考虑某种网站导航机制,我应该选择解决这个问题。
因为我想让用户创建页面,我不认为使用web.sitemap
默认
名为XmlSiteMapProvider
的提供商是个好主意。这是因为我想在运行时期间在web.sitemap
文件中进行修改。在用户创建新页面后,我必须编写修改web.sitemap
xml的机制。这意味着插入用于在所需位置上设置页面的特定条目。如果这是个好主意我会犹豫。
另一方面,我正在考虑创建使用数据库的自定义提供程序(Adding dynamic nodes to ASP.NET site maps at runtime)。使用该方法,用户可以定义新页面,然后将有关该页面的信息保存到数据库。回发后,提供者从数据库加载信息并构建菜单。
Mabye有更好的解决方案吗?在CMS中对新创建的页面进行动态nawigation的麻烦做法是什么?
(PS。我已经为新创建的页面配置了动态路由,所以这不是我的问题。)
答案 0 :(得分:0)
你看过Orchard了吗?它是Codeplex上的CMS。它可能会为您提供一些灵感。如果他们没有和你一样的问题,我会感到惊讶。
答案 1 :(得分:0)
MVCSiteMap项目的新2.0版本(http://mvcsitemap.codeplex.com/)有一个新的(并且设计得非常好)DynamicSiteMapNodeProvider功能,它可以完全满足您的需求。
作为副作用,它还可以很容易地为您添加基于MVC控制器/动作的节点。
我不能推荐这个项目。它已经成熟并且成长得非常好。