Kentico 13中替代Kentico 12 Message Board的方案咨询
Kentico 12 留言板模块(CMS.MessageBoard.dll)迁移至 Kentico 13 的替代方案
Kentico 13 正式移除了原有的 Message Board 模块(对应CMS.MessageBoard.dll),以下是两种可行的替代方案:
方案一:自定义开发留言板功能
基于 Kentico 13 的核心内容管理能力,自行实现留言板的核心逻辑:
- 创建自定义页面类型:新建如
Custom.MessageBoardItem的页面类型,添加必要字段:MessageContent(长文本,存储留言内容)AuthorName(文本,留言者姓名)AuthorEmail(文本,留言者邮箱)CreatedDateTime(日期时间,设置自动填充当前时间)
- 处理留言提交与存储:使用 Kentico 的
DocumentHelperAPI 完成留言的创建与保存,示例代码:// 获取留言板父节点 TreeNode parentNode = DocumentHelper.GetDocuments() .Path("/MessageBoard") .TopN(1) .FirstOrDefault(); if (parentNode != null) { // 创建新留言文档 TreeNode messageItem = TreeNode.New("Custom.MessageBoardItem", parentNode); messageItem.SetValue("MessageContent", Request.Form["MessageText"]); messageItem.SetValue("AuthorName", Request.Form["AuthorName"]); messageItem.SetValue("AuthorEmail", Request.Form["AuthorEmail"]); // 保存文档 DocumentHelper.InsertDocument(messageItem, parentNode); } - 前端展示留言:通过
DocumentQuery查询留言数据,按时间排序后渲染:var messages = DocumentHelper.GetDocuments("Custom.MessageBoardItem") .Path("/MessageBoard") .OrderByDescending("CreatedDateTime") .ToList(); - 附加功能:可集成 Kentico 内置的验证码组件防止垃圾留言,或通过权限设置限制仅登录用户提交留言。
方案二:复用 Community Forums 模块
如果你的留言场景偏向轻量讨论,可直接使用 Kentico 13 内置的 Community Forums 模块适配:
- 创建一个专用论坛板块,将其作为留言板使用;
- 配置板块权限,限制用户仅能发布主题/回复,隐藏论坛的分类、标签等多余功能;
- 利用模块内置的控件(如
ForumPosts、ForumReply)快速实现留言的展示与提交逻辑。
迁移注意事项
- 数据迁移:需手动导出 Kentico 12 数据库中
CMS_MessageBoard、CMS_MessageBoardMessage等表的留言数据,然后导入到自定义页面类型或 Community Forums 的对应数据表中; - 代码重构:替换原项目中
CMS.MessageBoard相关的控件与 API 调用,改用上述方案的实现逻辑。
内容的提问来源于stack exchange,提问作者Manprit Singh Sahota
相关产品推荐
相关产品推荐

