3

我正在构建一个网站(使用 ASP.NET、MVC 3、Razor)并且我没有使用现成的 CMS。这是因为我评估了很多现有的 CMS,发现它们都具有巨大的学习曲线,大量我不需要的功能,它们迫使您进入面向页面的模型。“面向页面的模型”是指您可以指定一般的页面布局和样式表,但用户可以编辑的对象是整个页面,例如显示在中央面板中,也许您可​​以自定义侧边栏也是如此。

但是这个网站非常以设计为中心,需要比这更加流畅和细化。“以设计为中心”是指该网站是由一位平面设计师在 Photoshop 中构建的,并且大量使用图像和复杂的样式将设计映射到 HTML/css/js。此外,网站上的每个页面都完全不同。还有诸如手风琴面板之类的 UI 元素,我们需要用户能够在其中编辑每个面板的内容,但肯定不是支持手风琴的 jQuery+HTML。用户是主题专家,但非常非技术性。

因此,我将有一个包含许多复杂布局和样式的页面,我不希望用户访问这些页面,但其中会有一个div包含文本,我希望用户能够编辑。

我怎样才能最好地做到这一点?

到目前为止,我通过将片段(HTML 的小单元)存储在外部文件中来实现这一点,用户可以对其进行编辑。在运行模式下,这些内容被加载并内联显示(如果您已登录并具有权限,则带有一个小的“编辑此内容”按钮)。如果单击“编辑”按钮,您会看到一个所见即所得的小编辑屏幕,您可以在其中编辑和保存更改。所以我可以控制所有乱七八糟的东西,并为用户可编辑的内容放置小占位符。但这对我来说并不完全简单,我想知道是否有更好的方法。

4

2 回答 2

1

并不是要解决这个问题,但这似乎是与我目前正在研究的最相关的问题。我最近构建了与您上面描述的类似的东西,但是我从数据库而不是静态文件中提取数据。对于控制器中的每个页面(如 /about 或 /contact),我以 Json 字符串键/值对的形式从数据库中提取该页面的数据。Key 是占位符标签,Value 是.. 值。反序列化后,我只需填充一个列表并将其分配给 ViewBag,然后在 CSHTML 中我 ViewBag.List.Keyname 来抓取文本。

我有一个小的管理控制面板,它允许我修改数据库中的文本。不过,像您一样进行小悬停是个好主意!

于 2015-10-30T07:28:47.640 回答
0

好吧,我坚持我原来的计划:

到目前为止,我通过将片段(HTML 的小单元)存储在外部文件中来实现这一点,用户可以对其进行编辑。在运行模式下,这些内容被加载并内联显示(如果您已登录并具有权限,则带有一个小的“编辑此内容”按钮)。如果单击“编辑”按钮,您会看到一个所见即所得的小编辑屏幕,您可以在其中编辑和保存更改。所以我可以控制所有乱七八糟的东西,并为用户可编辑的内容放置小占位符。但这对我来说并不完全简单,我想知道是否有更好的方法。

它现在工作得相当好。

于 2012-09-07T13:23:44.720 回答