尝试在If条件中创建代码部分抛出错误: “@”字符后面的意外“section”关键字。一旦进入内部代码,您就不需要使用“@”作为“section”的结构前缀。
Example 1:Create section when needed
@If bIsMobile = True Then
@section PageFooter
<div data-role="navbar">
<ul>
<li><a href="#">Add</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">Delete</a></li>
<li><a href="#">Search</a></li>
<li><a href="#">Refresh</a></li>
</ul>
</div>
End Section
End If
显然我们可以在区域内移动条件,但这会强制处理空区块:
Example 2:Creates empty section
@section PageFooter
@If bIsMobile = True Then
<div data-role="navbar">
<ul>
<li><a href="#">Add</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">Delete</a></li>
<li><a href="#">Search</a></li>
<li><a href="#">Refresh</a></li>
</ul>
</div>
End If
End Section
我们如何实施示例#1
答案 0 :(得分:1)
@section块只能出现在标记上下文中。感谢SLacks获得此答案。
@If bIsMobile = True Then
<text>
@section PageFooter
<div data-role="navbar">
<ul>
<li><a href="#">Add</a></li>
<li><a href="#">Edit</a></li>
<li><a href="#">Delete</a></li>
<li><a href="#">Search</a></li>
<li><a href="#">Refresh</a></li>
</ul>
</div>
End Section
</text>
End If
并在_Layout页面中检查是否为非移动页面定义了部分。否则,它将抛出一个异常,指出未定义“PageFooter”部分。
<footer>
@If IsSectionDefined("PageFooter") Then
RenderSection("PageFooter")
End If
</footer>
答案 1 :(得分:0)
您提供的第二个示例是正确的。
据我所知,你不能指定剃刀引擎在条件或循环块中包含一个部分。