我得到了一个定义了布局的视图。在布局中,有一个部分:
@RenderSection("JavaScript", required: false)
在视图中,根据条件,我想要将某些JavaScript渲染到该部分。
@if (condition)
{
@section JavaScript
{
<script type="text/javascript>
$(document).ready(function(){
//bla...
});
</script>
}
}
以上语法错误。什么是正确的语法?
基本上,我得到了一个需要根据条件渲染的局部视图。如果条件为真,那么我需要将局部视图与部分视图的JavaScript一起呈现,我想转到“JavaScript”部分。我怎么能这样做?
答案 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?