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

Синтаксис Razor для рендеринга на основе условия

У меня есть представление с макетом. В макете есть раздел:

@RenderSection("JavaScript", required: false)

В представлении, основанном на условии, я хочу либо отредактировать определенный JavaScript в этом разделе, либо нет.

@if (condition)
{ 
    @section JavaScript
    {
        <script type="text/javascript>
           $(document).ready(function(){
             //bla...
           });
        </script>
    }
}

Указанный выше синтаксис неверен. Какой правильный синтаксис? Спасибо!

EDIT: В принципе, у меня есть частичное представление, которое нужно визуализировать на основе условия. Если условие истинно, тогда мне нужно отобразить частичный вид вместе с некоторым JavaScript для частичного представления, которое я хочу перейти в раздел "JavaScript". Как я могу это сделать? Каков правильный синтаксис?

4b9b3361

Ответ 1

@section блоки могут появляться только в контекстах разметки.

Вы можете написать

@if (condition)
{ 
    <text>
        @section JavaScript
        {
            <script type="text/javascript>
               $(document).ready(function(){
                 //bla...
               });
            </script>
        }
    </text>
}

Ответ 2

@if (условие) RenderSection (..)

@Section Javascript{ 
        <script type="text/javascript>
           $(document).ready(function(){
             //bla...
           });
        </script>
}

или в вашем макете:

@RenderSection(..)

и на ваш взгляд:

@section Javascript{ 
if(condition) 
{
    <script type="text/javascript">
        $(document).ready(function () {
            //bla...
        });
    </script>
} 
} 

также см. Есть ли способ сделать @section необязательным с asp.net mvc Razor ViewEngine?