2010-08-24 2 views
12

Est-ce que quelqu'un sait comment forcer Razor View Engine à imprimer une ligne exacte qui est sous boucle foreach. Code suit:Razor View Engine et 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> 

}

J'ai essayé d'utiliser $() et jQuery() mais dans les deux cas de rasoir ne savent pas quoi faire. Est-il possible de le forcer à imprimer exactement ceci: jQuery ("# ​​pb @ PlayerID"). ProgressBar();. Je veux avoir quelque chose comme ceci:

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

});

Merci d'avance!

Répondre

22

À l'intérieur du bloc @foreach, le contenu est du code par défaut, sauf si vous revenez au balisage. Ainsi, la ligne "jQuery (...). ProgressBar()" est considérée comme C#. Dans ce cas, lorsque vous souhaitez que le balisage ne soit pas HTML, vous pouvez utiliser la balise <text>, qui n'est pas réellement rendue OU la directive "@:" qui demande à Razor de traiter le reste de la ligne comme un balisage, non importe ce qu'il contient (bien sûr, vous pouvez alors utiliser "@" dans la ligne pour imbriquer d'autres blocs de code).

En outre, le "pb @ PlayerID" ressemble à une adresse e-mail à Razor donc il l'ignore. Vous pouvez éviter cela en utilisant la syntaxe d'expression explicite @(). Ainsi, le bloc @foreach devrait ressembler à ceci:

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

Bonne chance! BTW Je pense que vous vouliez dire "... vous pouvez utiliser la balise de texte" au lieu de "vous pouvez utiliser le tag". Peut-être qu'il a été dépouillé par SO moteur .. – aolde

+0

merci! cela m'aidera beaucoup ... – rjovic

3

Ce very helpful article par Scott Gu explique tout ce que vous devez savoir - et a à peu près toutes les situations couvertes.

Voici le style explicite <text> mentionné par @Manticore - il y a beaucoup plus d'exemples dans l'article.

alt text

+2

et voici un outil de frappe Razor encore plus concis de Phil Haack: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx –

Questions connexes