Ich habe Code wie folgt in einer .aspx-Datei:
%Vor%Es funktioniert gut (x ist eine Zeichenkette, die zur Laufzeit an etwas JavaScript gebunden wird), aber beim Kompilieren erhalte ich eine "Expected expression" Warnung für das & lt;% =
Ich weiß, dass es nicht der schönste Code der Welt ist, aber es gibt verschiedene historische Codebits, die ein wenig JavaScript in die Seite einfügen. Alles vollkommen unschuldig:)
Die Warnung wird ausgelöst, weil sich der Codeblock in einem JavaScript <script>
-Block befindet; Der Compiler versucht, den Unterschied zwischen HTML / Steuerelementen und JavaScript zu erkennen.
Obwohl es etwas hässlich ist, sollten Sie die Warnung mit eval('<%= x %>')
Sie können sich auch einen Artikel ansehen, den ich mit ASP.NET geschrieben habe, um dynamisches JavaScript zu erstellen: Ссылка
Visual Studio überprüft das HTML-Markup auf der Seite. Streng genommen ist das & lt; ist kein gültiges XHTML. Diese Warnung kann durch eine Einschränkung der Validierung verursacht werden, da Visual Studio das & lt; Zeichen in Javascript als "weniger als"!
Offensichtlich sind diese Inline-Ausdrücke kein gültiger Client-Code. Man kann die HTML-Validierungsoptionen unter Extras | Optionen | Texteditor | HTML ändern. Wohlgemerkt, es ist besser, diese Warnungen einfach zu ignorieren, anstatt sie mit HTML 4.01 zu validieren oder die Validierung vollständig zu deaktivieren.
Wenn Sie lediglich JavaScript zu Ihrer Seite hinzufügen, können Sie RegisterClientScriptBlock , um das Skript serverseitig zu erstellen und es dann auf die Seite ausgeben zu lassen.
Auf diese Weise müssen Sie kein serverseitiges Scripting innerhalb Ihrer Seite und den damit verbundenen Overhead haben.
Ich habe das schon mal gemacht und hatte keine Probleme. Ich benutze jedoch jQuery $ (Dokument) .ready () anstelle von init (). Ich denke nicht, dass das ein Problem sein sollte.
Welcher Datentyp ist x? Wenn es sich um eine Zeichenfolge handelt, versuchen Sie, sie in einfache Anführungszeichen zu schreiben. Wenn es sich um eine Zahl handelt, verwenden Sie die Syntaxanalysefunktion für diesen Datentyp.
%Vor%Ein weiteres Problem wäre die Zugriffsebene der Eigenschaft. ASP.NET-Webformulare können nicht direkt aus dem Code-Behind auf private Felder zugreifen. Der Zugang muss geschützt oder öffentlich sein.
Ich fand das Problem, dass ich damit hatte.
Es scheint, ich habe HTML über dem Skript falsch auskommentiert.
%Vor%Ich bekam die erwartete Ausdruckswarnung auf getJson ()
Korrektes Kommentieren des HTML-Codes wird die Warnung beheben.
- & gt;Tags und Links c# asp.net visual-studio-2008