Razor语法根据条件呈现部分

时间:2011-05-12 18:29:07

标签: asp.net-mvc-3 razor

我得到了一个定义了布局的视图。在布局中,有一个部分:

@RenderSection("JavaScript", required: false)

在视图中,根据条件,我想要将某些JavaScript渲染到该部分。

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

以上语法错误。什么是正确的语法?

修改

基本上,我得到了一个需要根据条件渲染的局部视图。如果条件为真,那么我需要将局部视图与部分视图的JavaScript一起呈现,我想转到“JavaScript”部分。我怎么能这样做?

2 个答案:

答案 0 :(得分:49)

@section块只能出现在标记上下文中。

你可以写

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

答案 1 :(得分:2)

@if(condition)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>
} 
} 

另见: Is there a way to make a @section optional with the asp.net mvc Razor ViewEngine?