自定义区域内的 Piranha CMS HtmlRegion 不保存内容
Posted
技术标签:
【中文标题】自定义区域内的 Piranha CMS HtmlRegion 不保存内容【英文标题】:Piranha CMS HtmlRegion within Custom Region not saving content 【发布时间】:2014-11-02 13:23:23 【问题描述】:我在我的 Piranha CMS 安装中创建了几个自定义区域,但是当我的自定义区域中有任何类型的文本区域时我遇到了问题。编辑器将显示,您可以输入文本,但它不会保存到数据库。
这是我的课程
using System;
using System.ComponentModel.Composition;
using Piranha.Extend;
using Piranha.Extend.Regions;
namespace MatchtechGroup.Models.Regions
[Export(typeof(IExtension))]
[ExportMetadata("InternalId", "SimpleTab")]
[ExportMetadata("Name", "Simple Tab")]
[ExportMetadata("Type", ExtensionType.Region)]
[Serializable]
public class SimpleTab : Extension, ITab
public string Title get; set;
public htmlRegion Tab get; set;
public SimpleTab()
Tab = new HtmlRegion();
还有我在 Areas/Manager/Views/Extensions 中的 Manager 模板
@model MatchtechGroup.Models.Regions.SimpleTab
@
Layout = "";
<ul class="form">
<li>
@Html.LabelFor(m => m.Title)
<div class="input">@Html.TextBoxFor(m => m.Title)</div>
</li>
<li>
@Html.TextAreaFor(m => m.Tab, new @class = "editor", @rows = 10 )
</li>
</ul>
管理器界面在页面编辑器中正确呈现我的新区域,但不会保存 Html 区域中的内容。界面中没有显示错误,只是没有出现“此页面已保存”消息栏,或者我无法发布页面。
任何帮助都将不胜感激,感觉就像我缺少一些基本的东西,或者我无法在此自定义区域中嵌套 HTML 区域。
谢谢
【问题讨论】:
【参考方案1】:问题可能是您的 HtmlValue 在模型绑定器中无效,因此 Model.IsValid 为假。解决您的问题的最简单方法是将您的属性更改为:
public class SimpleTab : ...
public string Title get; set;
public string Tab get; set;
唯一的区别是在 Razor 标记中使用它时。如果您有一个名为 MyTab 的 SimpleTab 类型的区域,则语法将是(例如):
<div>
<h3>@Model.Regions.MyTab.Title</h3>
<div class="content">
@Html.Raw(Model.Regions.MyTab.Tab)
</div>
</div>
唯一的区别是@Html.Raw()
以确保正文不会被转义。
问候
/哈坎
【讨论】:
以上是关于自定义区域内的 Piranha CMS HtmlRegion 不保存内容的主要内容,如果未能解决你的问题,请参考以下文章