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

时间:2017-10-18 11:59:24

标签: json umbraco umbraco7

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

我遇到的问题是保存和反序列化属性数据。数据被保存为解析为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属性,但这没有做任何事情......请求总是如上所示发送。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

不是最理想的解决方案,但它确实有效。