2010-05-07 5 views
8

Ich entwickle eine neue ASP.NET MVC 2.0-Anwendung und möchte die neuen ASP.NET 4-Codierungsblöcke verwenden.HTML-Codierungsblöcke - Ungültiger Ausdrucksterm ':'

My View-Code enthält <%: Model.ActivityName %> jedoch Visual Studio berichtet:

Unexpected token

an der Position des : (Kolon). Beim Ausführen der Anwendung erhalte ich folgenden Kompilierungsfehler:

Compiler Error Message: CS1525: Invalid expression term ':'

Was fehlt mir?

Prost für jede Hilfe/Beratung.

+1

In welcher Version von VS machst du das? –

+0

VS 2008. Ich habe meine Anwendung als eine MVC 2.0-Anwendung erstellt. Wird ASP.NET 4 nicht automatisch verwendet? –

+0

@Sam: Anscheinend 2008. – SLaks

Antwort

13

Diese Funktion ist neu in ASP.Net 4.0, die wiederum neu zu Visual Studio 2010.

In früheren Versionen sollten Sie

<%= Html.Encode(Model.ActivityName) %> 
+0

Danke Schabse. Ich habe die Idee, die ich vielleicht in VS 2010 entwickeln müsste, völlig weggelassen. Sehr geschätzt. –

+0

Sie müssen VS2010 nicht verwenden, um ASP.Net MVC zu verwenden. – SLaks

+0

Ja, ich weiß. Ich möchte nur die Codeblocks-Funktion verwenden können. Dies ist ein brandneues Projekt, also möchte ich die aktuellsten Dinge verwenden, die ich kann. Meine MVC 1 Projekte wurden alle 2008 entwickelt –

1

schreiben, wie bereits erwähnt wurde, aus, Sie muss die richtige Version von VS verwenden. Wenn Sie nicht können und Sie müssen alle Ihren Code ändern, um die Html.Encode Methode Phil Haack had a post about doing the opposite zu verwenden, die nützlich sein könnte.

Nicht, dass ich es gebunden, aber die umgekehrten Suchen und Ersetzen in VS sollen mit

<%:= Html.Encode\(\1 \) %> 

oder etwas in der Nähe, dass so etwas wie

\<\%:b*{[^%]*}:b*\%\> 

ersetzt werden. Wie gesagt, ich habe momentan keine IDE zum Testen, also probiere es aus, bevor du es über dein gesamtes Projekt laufen lässt.

+0

Cheers Sam und danke für den Blog-Link. Ich habe das erst gestern infact gelesen. :) –

5

Klingt wie das Zielframework nicht auf .NET Framework 4.0 festgelegt ist.

Klicken Sie dazu im Lösungsexplorer mit der rechten Maustaste auf den Projektstamm und wählen Sie Eigenschaften im Kontextmenü aus.

In der Registerkarte Anwendung sollte ein Dropdown für Target Framework angezeigt werden. Ändern Sie das zu .NET Framework 4.0.

Versuchen Sie und kompilieren Sie, um zu sehen, ob der Fehler verschwindet.

+0

Bingo! Das hat es für mich getan. Ich hatte an einem anderen Projekt in 3.5 gearbeitet und das blieb, als ich die neue Lösung startete. Danke DevDave! – kdmurray