2010-05-07 11 views
8

Sto sviluppando una nuova applicazione ASP.NET MVC 2.0 e desidero utilizzare i nuovi blocchi di codifica ASP.NET 4.Blocchi di codifica HTML - Termine espressione non valido ':'

Il mio codice di Vista contiene <%: Model.ActivityName %> tuttavia Visual Studio sta segnalando:

Unexpected token

alla posizione del : (due punti). Quando eseguo l'applicazione ottengo il seguente errore di compilazione:

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

Cosa mi manca?

Cheers per qualsiasi aiuto/consiglio.

+1

quale versione di VS stai facendo in questo? –

+0

VS 2008. Ho creato la mia applicazione come applicazione MVC 2.0. Non sta automaticamente usando ASP.NET 4? –

+0

@Sam: Apparentemente, 2008. – SLaks

risposta

13

Questa funzione è stata introdotta per ASP.Net 4.0, che è a sua volta una novità per Visual Studio 2010.

Nelle versioni precedenti, si dovrebbe scrivere

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

Grazie Schabse. Avevo completamente omesso l'idea che forse avrei dovuto fare questo in VS 2010. Molto apprezzato. –

+0

Non è necessario utilizzare VS2010 per utilizzare ASP.Net MVC. – SLaks

+0

Sì, lo so. Voglio solo essere in grado di utilizzare la funzionalità di blocchi di codice. Questo è un progetto nuovo di zecca, quindi voglio usare le cose più moderne che posso. I miei progetti MVC 1 sono stati tutti deviati nel 2008 –

1

come è già stato sottolineato, è è necessario utilizzare la versione corretta di VS. se non è possibile ed è necessario modificare tutto il codice per utilizzare il metodo Html.EncodePhil Haack had a post about doing the opposite che potrebbe essere utile.

Non che ho legato, ma la ricerca inversa e sostituire in VS dovrebbe essere qualcosa di simile a

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

sostituito con

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

o qualcosa di simile a questo. Come se dicessi che al momento non ho IDE da testare, quindi provalo prima di eseguirlo sull'intero progetto.

+0

Cheers Sam e grazie per il link del blog. L'ho letto proprio ieri, infatti. :) –

5

Sembra che il framework di destinazione non sia impostato su .NET Framework 4.0.

Per fare ciò, in Solution Explorer, fare clic con il pulsante destro del mouse sulla radice del progetto e selezionare Proprietà nel menu di scelta rapida.

Nella scheda dell'applicazione dovresti visualizzare un menu a discesa per Target Framework. Cambiare questo in .NET Framework 4.0.

Prova e compila per vedere se l'errore scompare.

+0

Bingo! Che ha fatto per me. Stavo lavorando su un altro progetto in 3.5 e questo si è bloccato quando ho iniziato la nuova soluzione. Grazie DevDave! – kdmurray