我正在建立一个网站(使用ASP.NET,MVC 3,Razor),我不是在使用现成的CMS。这是因为我评估了很多现有的CMS,发现它们都有大量的学习曲线,我不需要的大量功能,它们迫使你进入面向页面的模型。通过“面向页面的模型”,我的意思是您可以指定一般的页面布局和样式表,但是用户可以编辑的对象是整个页面,例如,在中央面板中显示,也许您可以自定义侧边栏也是。
但是这个网站非常以设计为中心,需要比这更流畅和更精细。通过“以设计为中心”,我的意思是该网站是由图形设计师在Photoshop中构建的,并且大量使用图像和复杂样式将设计映射到HTML / css / js。此外,网站上的每个页面都完全不同。还有UI元素,如手风琴面板,我们需要用户能够编辑每个面板的内容,但肯定不是为手风琴提供动力的jQuery + HTML。用户是主题专家,但非技术性。
所以我会有一个包含大量复杂布局和样式的页面,我不希望用户访问它,但在此内部会有一个div
包含我想要的文本用户能够编辑。
我怎样才能最好地完成这项工作?
到目前为止,我通过使用片段来实现这一点,这些片段是存储在外部文件中的少量html单元,用户可以编辑。在运行模式下,这些内容被加载并显示(如果您已登录并具有权限,则会使用一点“编辑此内容”按钮)。如果单击“编辑”按钮,将获得一个WYSIWYG编辑屏幕,您可以在其中编辑和保存更改。所以我可以控制所有杂乱的东西,并为用户可编辑的内容添加少量占位符。但这对我来说并不简单,我想知道是否有更好的方法。
答案 0 :(得分:1)
不要暗示这一点,但这似乎是我目前正在研究的最相关的问题。我最近构建了类似于上面描述的内容,但是我从数据库中提取数据而不是静态文件。对于Controller中的每个页面(如/ about或/ contact),我以Json字符串键/值对的形式从DB中提取该页面的数据。 Key是占位符标记,Value是..值。反序列化后,我只需填充一个列表并将其分配给ViewBag,然后在CSHTML I ViewBag.List.Keyname中获取文本。
我有一个小的管理控制面板,允许我修改数据库中的文本。像你这样的小徘徊是一个好主意!
答案 1 :(得分:0)
好吧,我坚持原来的计划:
到目前为止,我通过使用片段来实现这一点,这些片段很少 存储在外部文件中的html单元,用户可以编辑。在 运行模式,这些是内嵌加载和显示(有一点“编辑 如果您已登录并拥有权限,则显示此“内容”按钮。如果您 单击编辑按钮,您将获得一个WYSIWYG编辑屏幕,其中 您可以编辑和保存更改。所以我可以控制所有凌乱的东西, 并为用户可编辑的内容添加少量占位符。但是这个 对我来说并不简单,我想知道是否有更好的 方式。
现在它运作得相当好。