Asp.net mvc 5 自定义区域内的Piranha CMS HtmlRegion不保存内容

Asp.net mvc 5 自定义区域内的Piranha CMS HtmlRegion不保存内容,asp.net-mvc-5,piranha-cms,Asp.net Mvc 5,Piranha Cms,我已经在我的Piranha CMS安装中创建了几个自定义区域,但是当我的自定义区域中有任何类型的文本区域时,我会遇到问题。编辑器将显示,您可以输入文本,但不会保存到数据库中 这是我的课程 using System; using System.ComponentModel.Composition; using Piranha.Extend; using Piranha.Extend.Regions; namespace MatchtechGroup.Models.Regions { [Expor

我已经在我的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();
    }
}
}
区域/经理/视图/扩展中的“我的经理”模板

@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>
@model MatchtechGroup.Models.Regions.SimpleTab
@{
布局=”;
}
  • @LabelFor(m=>m.Title) @Html.TextBoxFor(m=>m.Title)
  • @TextAreaFor(m=>m.Tab,新的{@class=“editor”,@rows=10})
管理器界面在页面编辑器中正确呈现我的新区域,但不会保存Html区域中的内容。界面中没有显示错误,只是没有显示“此页面已保存”消息栏,或者我无法发布页面

任何帮助都将不胜感激,感觉我缺少了一些基本的东西,或者我无法在这个自定义区域中嵌套HTML区域


谢谢

问题可能是您的HtmlValue在模型绑定器中无效,因此Model.IsValid为false。解决问题的最简单方法是将您的属性更改为:

public class SimpleTab : ...
{
  public string Title { get; set; }
  public string Tab { get; set; }
}
唯一的区别是在Razor标记中使用它时。如果有一个SimpleTab类型的区域名为MyTab,那么语法将是(例如):


@Model.Regions.MyTab.Title
@Html.Raw(Model.Regions.MyTab.Tab)
唯一的区别是
@Html.Raw()
,以确保不会转义正文

问候

/赫坎

<div>
  <h3>@Model.Regions.MyTab.Title</h3>
  <div class="content">
    @Html.Raw(Model.Regions.MyTab.Tab)
  </div>
</div>