三層嵌套布局:_Layout1 → _Layout2 → View。_Layout2 中 @RenderSection("script2", false) 位於 JS 函數內。View 填充 script2 時,直接寫 @if (cond) { ... } 報錯;包裹 @{ <text> ... </text> } 正常。
Razor 解析器在非標準標簽上下文(如 JS 字符串/函數體內)難以正確識別 @if 代碼塊邊界。
<script> ... @if(cond){ @:var x=1; } </script>,或用 @Html.Raw 輸出 JS 變量。@section script2 { <text> ... </text> } 包裹。