2017-06-14 6 views
0

Ich habe diesen Code in meinem LaufzeittextvorlageRuntime Textvorlagen - seltsame Fehler

<#= Power(); #> 

Dies sollte eine Funktion aufrufen, die in derselben Klasse definiert ist, die Vorlage an wurde definiert.

Ich bin 100% sicher, es ist richtige Klasse, weil andere Teile der Vorlage private Variablen aus dieser Klasse verwenden.

Warum erhalte ich 4 Kompilierungsfehler und wie behebe ich sie?

Error 1 ) expected      
Error 2 Invalid expression term ')'  
Error 3 ; expected      
Error 4 Invalid expression term ')' 

Wenn ich diese Zeile entferne, verschwinden alle 4 Fehler.

Ich bekomme die gleichen Fehler, wenn ich die Methode Power von partiellen Klassendefinition in Ende der Vorlage als Klasse Feature-Steuerblock entfernen.

+0

Macht keinen Unterschied, gleiche Fehler –

Antwort

2

Die <#= expr #> Syntax erfordert eine expression innerhalb, nicht eine statement, dies ist, weil es in output.Write(expr); kompiliert ist.

... also wenn Sie <#= SomeFunction(); #> setzen, dann wird es zu output.Write(SomeFunction();); kompiliert werden, was ein offensichtlicher Syntaxfehler ist.

Entfernen Sie einfach die ; und es wird funktionieren. Einfach ausgedrückt: Das Semikolon wandelt eine C# expression in eine C# statement um.

Es ist das gleiche in ASPX-Syntax, wobei <%= expr %> akzeptiert nur Ausdrücke, keine Anweisungen (es ist kompiliert zu Response.Write(expr);).

+0

Cool! Sehr kurze Antwort! –

+0

Danke, das hat das Problem behoben. Ich hatte keine Ahnung, wohin ich damit gehen sollte und 4 Fehler, die ich bekam, sind schrecklich irreführend. –