Umbraco 7 自定义 属性 编辑器 valueType 未被使用

Umbraco 7 custom property editor valueType not being used

我创建了一个自定义 属性 编辑器并将其用作宏参数。 属性 渲染良好并显示应有的一切。

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

我的 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);

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