2010-08-24 4 views
12

Кто-нибудь знает, как заставить Razor просмотреть двигатель для печати точной линии, которая находится под петлей foreach. Код следующим образом:Razor View Engine и 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> 

}

Я попытался с помощью $() и JQuery(), но в обоих случаях бритвой не знаю, что делать. Есть ли способ заставить его напечатать именно это: jQuery ("# ​​pb @ PlayerID"). ProgressBar();. Я хочу иметь примерно следующее:

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

});

Спасибо заранее!

ответ

22

Внутри блока @foreach содержимое является кодом по умолчанию, если вы не вернетесь к разметке. Таким образом, строка «jQuery (...). ProgressBar()» считается C#. В таких случаях, когда вы хотите разметку, которая не является HTML, вы можете использовать тег < >, который фактически не отображается ИЛИ директива «@:», которая инструктирует Razor обрабатывать остальную часть строки как разметку, no независимо от того, что он содержит (конечно, вы можете использовать «@» в строке, чтобы вложить дополнительные блоки кода).

Кроме того, «pb @ PlayerID» выглядит как адрес электронной почты для Razor, поэтому он игнорирует его. Вы можете избежать этого, используя синтаксис выражения @() explict. Таким образом, блок @foreach должен выглядеть следующим образом:

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

Хорошо! Кстати, я думаю, вы имели в виду «... вы можете использовать текстовый тег» вместо «вы можете использовать тег». Может быть, он был отключен двигателем SO .. – aolde

+0

спасибо! это мне очень поможет ... – rjovic

3

very helpful article Это Скотт Гу объясняет все, что вам нужно знать - и имеет довольно много каждую ситуацию покрыта.

Вот явный текст < > стиль, упомянутый @Manticore - в статье есть много примеров.

alt text

+2

и вот еще более краткий бридж-бридж из Фила Хаака: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx –

Смежные вопросы