未使用本布拉科 7 自定义属性编辑器值类型



我创建了一个自定义属性编辑器并将其用作宏参数。该物业呈现得很好,并显示一切。

我遇到的问题是属性数据的保存和反序列化。数据被保存为解析为 html 字符串的 JSON。

我的 JSON 对象{test: "pass"}转换为{"test":"pass"}

在提交之前,一切都是应有的,但是当按下提交按钮时,html 字符串就是传递给/umbraco/backoffice/UmbracoApi/Macro/GetMacroResultAsHtmlForEditor端点的内容。

这是我的package.manifest的样子:

{
    propertyEditors:
    [
        {
            alias: "propertyAlias",
            name: "Property Name",
            icon: "icon-code",
            isParameterEditor: true,
            editor: 
            {
                valueType: "JSON",
                view: "path/to/editor"
            }
        }
    ],
    javascript: 
    [
        "path/to/controller"
    ]
}

我试过玩valueType属性,但这没有任何作用......请求始终如上所示发送。

我认为问题是宏参数作为属性嵌入在页面的 HTML 中,因此数据将始终是 HTML 编码的。

您是否在富文本编辑器中嵌入宏?如果是这样,那肯定是问题所在。

根据 Tim 的回答,在属性编辑器配置中似乎没有太多可以做的事情。

我决定在宏中解码参数值,然后将其反序列化为自定义模型。对于遇到此问题的其他任何人:

var parameterValue = Model.GetParameterValue<string>("paramAlias");
var parameterValueDecoded = WebUtility.HtmlDecode(parameterValue);
var modelObject = JsonConvert.DeserializeObject<MyCustomModel>(parameterValueDecoded);

不是最佳解决方案,但它有效。

相关内容

  • 没有找到相关文章

最新更新