Kentico自定义页面类型表单验证有条件要求

时间:2017-08-30 14:57:19

标签: kentico

对于自定义页面类型中的字段,在宏或规则设计器中访问当前字段值以进行验证的有效方法是什么?只是Value吗?是FieldName.Value吗? this.Value

目标是为自定义页面类型创建表单添加满足宏条件(常规条件)的验证规则。例如,如果我想确保<{> 1}}的字段名称的文本字段的字符串值不为空/ null,我该如何将其设置为常规条件验证规则?

尝试以下任一方法:

Foobar

字符串值长度大于零(0)时,尝试保存Satisfies macro condition {% !String.IsNullOrEmpty(Value) %} Satisfies macro condition {% !String.IsNullOrEmpty(Foobar.Value) %} 字段的值时会出错。当字段为空时,验证奇怪地通过。

Foobar字段&#34;取决于另一个字段:&#34;。仅当另一个字段是特定值时才需要它。在宏规则中,我可以使用Foobar访问其他字段值,这就是为什么只需添加&#34;最小长度&#34;规则在这种情况下不起作用。我希望使用以下内容来检查复选框的条件(选中/ True)以有条件地要求此文本字段,但是OtherField.Value的字符串/文本评估,当前字段不是't工作

Foobar

注意:我可以在{% if (OtherField.Value == True) { return !String.IsNullOrEmpty(Foobar.Value) } else { return true; } %} 的属性中评估OtherField.Value / OtherField.Length,即使是&#34;解释文字&#34 ;。我还可以评估Foobar属性中的Foobar.Value。他们有价值/长度/等。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

K#不区分大小写,并且K#中几乎所有的C#方法都可用,但是字母大小写可能会对常量和变量的值产生影响(出于比较和类似的目的)。而且我不相信宏引擎中有String.IsNullOrEmpty()可用,但我可能错了。

为了解决您的问题,您可以执行以下操作:

{% if(OtherField.Value) { Foobar.Value != "" } else { true } %}

您是否尝试过Macro debugger来查看输出值是什么以及宏正在处理什么?这将是一个很好的测试设置。

Macro methods