Asp.Net MVC3 RC Razor Visualizzazioni: la sintassi per l'incorporamento di codice all'interno blocco

StackOverflow https://stackoverflow.com/questions/4204669

  •  25-09-2019
  •  | 
  •  

Domanda

Avere incorporamento c # codice di difficoltà all'interno di un blocco di JavaScript con MVC3 RC1 vista rasoio. Cosa sintassi dovrei usare per fare questo lavoro? Ottengo avvertimenti ad es. costante atteso sulla variabile Isok tra gli altri. (Senza modifica del testo, il seguente codice non viene riconosciuto come JavaScript)

@{bool isOk = true;}

<script type="text/javascript">
    var tmp1 = "";
    @if (isOk)
    { 
        <text>
            var tmp=""; // this should be interpreted as javascript
        </text>       
    }
</script>
È stato utile?

Soluzione

È necessario il tag <text> per indicare che il contenuto non viene valutato sul server. Ad esempio:

@{
    var isOK = true;
}

<script type="text/javascript">
    var tmp1 = "";
    @if (isOK)
    { 
        <text>
            var tmp = "foo";
        </text>       
    }
</script>

uscita volontà nella pagina risultante:

<script type="text/javascript">
    var tmp1 = "";
    var tmp = "foo";
</script>

Per quanto riguarda l'avviso Expected Constant è interessato, bene, Razor Intellisense è ancora in beta quindi è ben lungi dall'essere perfetto. E 'solo un avvertimento è possibile ignorare. La cosa importante è quello che è che l'applicazione funziona ed emette HTML valido. Spero che questo è qualcosa che sarà fissato nel prodotto finale. Per esperienza personale gli unici avvertimenti mi fido sono quello emesso dal compilatore C #. Quando sto lavorando in una vista che in modo sicuro ignorare tutti gli avvertimenti schifose che Visual Studio emette perché so che è sbagliato.

Altri suggerimenti

In alternativa (più concisa e più facile da leggere IMO) è quello di fuggire di nuovo fuori per come segue:

<script type="text/javascript"> 
    var tmp1 = ""; 
    @if (isOK) 
    {  
        @:var tmp = "foo";
    } 
</script> 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top