【发布时间】:2013-08-02 02:08:18
【问题描述】:
我正在使用 VS 2012 和 MVC 4。我正在创建一个简单的 CMS,因此我的页面内容将通过 c# 代码动态更新。 (带有标记的每个页面的内容都将保存在数据库中)。
我不知道的是如何从代码(来自 C# 控制器)更新 @renderbody 或 @rendersection?
例子:
我有一个母版页:
我有一个从该母版页派生的内容页:
我想从 C# 代码中获取所有内容。这样做的原因是我的内容将在数据库中并且会有很多页面,因此内容会根据搜索条件动态变化(我正在创建一个简单的知识库,因此用户将能够加粗文本,更改文本大小等)。
编辑 感谢您指出我问得不够准确 - 我正在从数据库中获取内容(包括一些 HTML 标记),而不是为我的页面获取 HTML。示例:MVC 4 Razor 引擎 - 这样的内容将在数据库中。
【问题讨论】:
-
如果您将 HTML 存储在您的数据库中,您以后将很难更新任何 HTML。为什么不直接将所需的数据保存在数据库中,并通过从数据库中读取页面数据来动态生成 HTML。这通常是如何完成的。这使您可以稍后更新 HTML 或更改主题等。
-
然后你可以使用
@Html.Raw(...)在你的视图中输出你的原始HTML。但是,请小心,因为恶意 HTML 可能会插入到您的数据库中,然后会发送给毫无戒心的客户端。 -
不同之处在于 SO 内容不是直接的 HTML 标记。它是一种特殊标记,在输出中处理并转换为 HTML。
标签: c# asp.net-mvc asp.net-mvc-4 razor