2012-09-07 14 views
17

Ho un rasoio esistente 1/mvc 3 vista, con pochi nidificati if - molto semplice, ma dopo l'aggiornamento a rasoio 2/mvc 4 si lamenta in fase di esecuzione e compilare (BuildViews) su } expected. Funzionava bene.Perché la vista del mio rasoio si lamenta "} atteso" dopo l'aggiornamento a rasoio 2/mvc 4?

  • Ho controllato tutti gli elementi sono ben formati/chiuso
  • Ho controllato che tutti i {/} sono bilanciati - questa non è la fine del file problema

Cosa può essere sbagliato?

risposta

37

Un numero di stranezze del rasoio legacy sono state corrette nell'aggiornamento del rasoio 2/mvc 4; uno Gotcha interessante è che in rasoio 1, quanto segue è legale (in una regione di codice):

string foo = @Some.Complex.Expression; 

Si noti che il @ v'è superfluo e non corretta, ma che rasoio 1 non si lamenta. Tuttavia, il rasoio 2 è più pignolo e si confonde, riportando l'errore } expected. Questa linea dovrebbe essere sostituito con:

string foo = Some.Complex.Expression; 

questo è un po 'sottile, poiché l'errore che si verifica ha nulla a che fare con bretelle ({/}), e può essere alcune linee dalla linea segnalato.

+0

Vedere anche: http://aspnetwebstack.codeplex.com/workitem/390 –

+0

GRAZIE. Questo mi ha totalmente salvato la giornata. Lo stesso problema si verifica se si esegue 'var @class =" qualcosa ";' –

+0

Yup. Questo era * esattamente * esso. Grazie! – Rolandus

Problemi correlati