Подтвердить что ты не робот

Razor View Engine и jQuery

Кто-нибудь знает, как заставить Razor View engine печатать точную строку, находящуюся под петлей foreach. Код следует:

@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();

});

Заранее благодарю вас!

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Здесь явный текст <text> стиль, упомянутый @Manticore - в статье представлено больше примеров.

alt text