Macros 宏正在工作,但不断获取RESOLVEDATAMACRO错误

Macros 宏正在工作,但不断获取RESOLVEDATAMACRO错误,macros,kentico,Macros,Kentico,我们的一页上出现了大量的宏解析器错误,我能够准确地指出它的来源。我们在静态html web部件中有一个宏,如下面的代码所示,我不知道出了什么问题。它也按预期工作,所以我很困惑。语法错了吗?希望有人能帮助我 <div class="row"> <div class="col-sm-4 newsltr-two-btn"> {% if(!String.IsNullOrEmpty(Document)) { %} <a target="_blank" href="

我们的一页上出现了大量的宏解析器错误,我能够准确地指出它的来源。我们在静态html web部件中有一个宏,如下面的代码所示,我不知道出了什么问题。它也按预期工作,所以我很困惑。语法错了吗?希望有人能帮助我

<div class="row">
  <div class="col-sm-4 newsltr-two-btn">
  {% if(!String.IsNullOrEmpty(Document)) { %}
  <a target="_blank" href="~/getattachment/{% Document %}/attachment.aspx" download>{% DocumentText %}</a>
  {% } else if (!String.IsNullOrEmpty(ExternalDocumentUrl)) { %}
  <a target="_blank" href="{% ExternalDocumentUrl %}">{% DocumentText %}</a>
  {% } #%}  
    </div>      
</div>

{%if(!String.IsNullOrEmpty(文档)){%}
{%}如果(!String.IsNullOrEmpty(ExternalDocumentUrl)){%}
{% } #%}  
事件日志:

计算表达式时出错:if(!string.IsNullOrEmpty(Document)){print(ResolveMacros(“\r\n{%DocumentText%}\r\n”)}else if(!string.IsNullOrEmpty(ExternalDocumentUrl)){print(ResolveMacros(“\r\n{%DocumentText%}\r\n”)}(用户)paulo|(散列)7B864EFC818F934B7BF4C7D92234DC8C506E841ED30C3B661F8BEE604D86B

System.ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小。 参数名称:索引 在System.ThrowHelper.ThrowarGumentofrangeException处(ExceptionArgument参数,ExceptionResource资源)
在CMS.MacroEngine.ExpressionEvaluator.EvaluateCondition(布尔与匹配、布尔与securityPassed、DataRow drLogItem、DateTime evaluationStarted)

中,您的语法似乎有错误。见下面的注释:

<div class="row">
  <div class="col-sm-4 newsltr-two-btn">
  {% if(!String.IsNullOrEmpty(Document)) { %}
  <a target="_blank" href="~/getattachment/{% Document %}/attachment.aspx" download>{% DocumentText %</a> // your error is here, missing a closing curly brace after the percent sign for DocumentText
  {% } else if (!String.IsNullOrEmpty(ExternalDocumentUrl)) { %}
  <a target="_blank" href="{% ExternalDocumentUrl %}">{% DocumentText %}</a>
  {% } #%}  
    </div>      
</div>

{%if(!String.IsNullOrEmpty(文档)){%}
//您的错误在这里,DocumentText的百分比符号后缺少右大括号
{%}如果(!String.IsNullOrEmpty(ExternalDocumentUrl)){%}
{% } #%}  

此外,如果您使用的是静态HTML Web部件,我建议将其移动到静态文本Web部件。原因是静态文本不会验证和更正您输入的任何HTML。这也可能是WYSIWYG编辑器修改您的标记并导致问题的原因。

看起来您的语法有错误。见下面的注释:

<div class="row">
  <div class="col-sm-4 newsltr-two-btn">
  {% if(!String.IsNullOrEmpty(Document)) { %}
  <a target="_blank" href="~/getattachment/{% Document %}/attachment.aspx" download>{% DocumentText %</a> // your error is here, missing a closing curly brace after the percent sign for DocumentText
  {% } else if (!String.IsNullOrEmpty(ExternalDocumentUrl)) { %}
  <a target="_blank" href="{% ExternalDocumentUrl %}">{% DocumentText %}</a>
  {% } #%}  
    </div>      
</div>

{%if(!String.IsNullOrEmpty(文档)){%}
//您的错误在这里,DocumentText的百分比符号后缺少右大括号
{%}如果(!String.IsNullOrEmpty(ExternalDocumentUrl)){%}
{% } #%}  

此外,如果您使用的是静态HTML Web部件,我建议将其移动到静态文本Web部件。原因是静态文本不会验证和更正您输入的任何HTML。这也可能是WYSIWYG编辑器修改您的标记并导致问题的原因。

感谢您的回复,但这只是一个打字错误。我改正了,我尝试了文本静态web部件,但没有成功。我最后做的是使用repeater web部件,以便使用ASCX转换。谢谢你,布伦登!谢谢你的回复,但这只是一个打字错误。我改正了,我尝试了文本静态web部件,但没有成功。我最后做的是使用repeater web部件,以便使用ASCX转换。谢谢你,布伦登!