2010-08-24 18 views
12

qualcuno sa come forzare il motore Razor View per stampare la riga esatta che è in ciclo foreach. Codice segue:Razor View Engine e jQuery

@section head{ 
<script type="text/javascript" src="@Url.Content("~/Content/Scripts/jquery-1.4.1.js")"></script> 
<script type="text/javascript" src="@Url.Content("~/Content/Scripts/jquery.progressbar.min.js")"></script> 

<script type="text/javascript"> 

    $(document).ready(function() { 
     @foreach(var player in Model) 
     { 
      jQuery("#[email protected]").progressBar(); 
     } 
    }); 
</script> 

}

Ho provato ad utilizzare $() e jQuery(), ma in entrambi i casi il rasoio non so cosa fare. C'è un modo per costringerlo a stampare esattamente questo: jQuery ("# ​​pb @ PlayerID"). ProgressBar();. Voglio avere qualcosa di simile:

$(document).ready(function() { 
    $("#pb1").progressBar(); 
    $("#pb2").progressBar(); 
    $("#pb3").progressBar(); 

});

Grazie in anticipo!

risposta

22

All'interno del blocco @foreach, il contenuto è codice per impostazione predefinita a meno che non si ritorni al markup. Quindi la linea "jQuery (...). ProgressBar()" è considerata C#. In casi come questo, dove vuoi un markup che non sia HTML, puoi usare il tag > di testo >, che in realtà non è reso O la direttiva "@:" che ordina a Razor di trattare il resto della linea come markup, no importa ciò che contiene (ovviamente, puoi usare "@" all'interno della linea per nidificare altri blocchi di codice).

Inoltre, "pb @ PlayerID" si presenta come un indirizzo di posta elettronica per Rasoio in modo da ignorarlo. Puoi evitarlo usando la sintassi di espressione @() explict. Quindi il blocco @foreach dovrebbe essere simile a questo:

@foreach(var player in Model) 
{ 
    @: jQuery("#[email protected](PlayerID)").progressBar(); 
} 
+0

Buono! A proposito penso che intendessi "... puoi usare il tag di testo" invece di "puoi usare il tag". Forse è stato spogliato dal motore SO .. – aolde

+0

grazie! questo mi aiuterà molto ... – rjovic

3

Questo very helpful article da Scott Gu spiega tutto quello che c'è da sapere - e ha praticamente ogni situazione coperto.

Ecco il esplicito stile <testo> fornita dal @Manticore - c'è molto più esempi in questo articolo.

alt text

+2

e qui c'è un cheatsheet Razor ancora più conciso da Phil Haack: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx –

Problemi correlati