2017-12-22 5 views
0

Wir bekommen Tonnen von MACRORESOLVER Fehler auf einer unserer Seiten und ich konnte feststellen, woher es kommt. Wir haben ein Makro in einem statischen HTML-Web-Teil wie der Code unten und ich kann nicht herausfinden, was falsch ist. Es funktioniert wie erwartet, also bin ich verwirrt. Ist die Syntax falsch? Hoffe, dass mir jemand helfen kann.Macro funktioniert, aber es werden immer RESOLVEDATAMACRO-Fehler

<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> 

Event Log:

Fehler beim Ausdruck der Bewertung: (! String.IsNullOrEmpty (Dokument)), wenn {print (ResolveMacros ("\ r \ n {% Documenttext%} \ r \ n"))} else if) {print (ResolveMacros ("\ r \ n {% Documenttext%} \ r \ n"))} (string.IsNullOrEmpty (ExternalDocumentUrl!) | (user) paulo | (hash) 7b864efc818f93934b7bfb4c7d92234dc8c506e841ed30c3b661f8bee604d86b

System.ArgumentOutOfRangeException: Index lag außerhalb des zulässigen Bereichs. Muss nicht negativ und kleiner als die Größe der Sammlung sein. Parametername: Index bei System.ThrowHelper.ThrowArgumentOutOfRangeException (ExceptionArgument Argument, ExceptionResource Ressource) bei CMS.MacroEngine.ExpressionEvaluator.EvaluateCondition (Boolean & Spiel, Boolean & securityPassed, DataRow drLogItem, Datetime evaluationStarted)

Antwort

3

Sieht aus wie Ihre Syntax hat einen Fehler darin. Siehe Notation unten:

<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> 

Auch, wenn Sie einen statischen HTML webpart verwenden, schlägt ich vor, würde es zu einem statischen Text webpart bewegen. Der Grund dafür, dass der statische Text ist, validiert und korrigiert den eingegebenen HTML-Code nicht. Dies könnte auch das Problem sein, dass der WYSIWYG-Editor Ihr Markup ändert und Probleme verursacht.

+0

Danke für die Antwort, aber es war nur ein Tippfehler. Ich habe es korrigiert. – masterlopau

+0

@masterlopau siehe die aktualisierte Antwort. –

+0

Ich habe versucht, den Text statische Web-Teil, aber kein Glück. Was ich getan habe, ist ein Repeater-Webpart zu verwenden, so dass ich eine ASCX-Transformation verwenden kann. Danke Brenden! – masterlopau

Verwandte Themen