2010-08-24 22 views
12

¿Alguien sabe cómo forzar el motor Razor View para imprimir la línea exacta que está bajo el ciclo foreach? Código sigue:Razor View Engine y 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> 

}

He intentado utilizar $() y jQuery(), pero en ambos casos la maquinilla de afeitar no saber qué hacer. ¿Hay alguna manera de obligarlo a imprimir exactamente esto: jQuery ("# ​​pb @ PlayerID"). ProgressBar();. Quiero tener algo como esto:

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

});

¡Gracias de antemano!

Respuesta

22

Dentro del bloque @foreach, el contenido es código por defecto a menos que vuelva a cambiar a marcado. Entonces, la línea "jQuery (...). ProgressBar()" se considera C#. En casos como este, donde desee un marcado que no sea HTML, puede usar la etiqueta < de texto >, que en realidad no se representa O la instrucción "@:" que indica a Razor que trate el resto de la línea como marcado, no importa lo que contenga (por supuesto, puede usar "@" dentro de la línea para anidar más bloques de código).

Además, el "pb @ PlayerID" parece una dirección de correo electrónico para Razor, por lo que lo ignora. Puede evitar eso usando la sintaxis de expresiones explict @(). Por lo que el bloque de @foreach debería tener este aspecto:

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

Good one! Por cierto, creo que querías decir "... puedes usar la etiqueta de texto" en lugar de "puedes usar la etiqueta". Tal vez fue eliminado por el motor SO ... – aolde

+0

¡gracias! esto me ayudará mucho ... – rjovic

3

Este very helpful article por Scott Gu explica todo lo que necesita saber - y tiene casi todas las situaciones previstas.

Aquí está el explícito <texto> estilo mencionado por @Manticore - hay muchos más ejemplos en el artículo.

alt text

+2

y aquí hay una hoja de trucos Razor aún más conciso de Phil Haack: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx –

Cuestiones relacionadas