5

Razor 似乎不喜欢我的单行If语句...通常在 VB.NET 中,我可以像这样编写单行If语句:

If True Then Dim x As Integer

但是,当我在这样的.vbhtml文件中对 Razor 执行相同操作时......

@If True Then Dim x As Integer

我得到错误

“If”块未终止。所有 "If" 语句必须以匹配的 "End If" 终止

是什么赋予了?为什么 Razor 不接受这个?我意识到一个简单的解决方案是只使用一个代码块

@code
    If True Then Dim x As Integer
End Code

但这不是我要找的。我很好奇为什么 Razor 无法识别 VB.Net 单行If语句,仅使用@If.... 有任何想法吗?

4

3 回答 3

7

在 VB.Net 中,您可以像这样执行内联 If 语句:

@(If(boolCondition, "truePart", "falsePart"))
于 2013-11-06T16:42:44.170 回答
1

与 C# 相同的问题,如此所述:

Razor 使用代码语法推断缩进:Razor Parser 通过读取开始和结束字符或 HTML 元素来推断代码结尾。因此,必须使用开头“{”和结尾“}”,即使对于单行指令也是如此

你做正确的事

@code
    If True Then Dim x As Integer
End Code

你可以那样做,但不是你喜欢的(内联)

@If (True) Then
    Dim x As Integer
End If
于 2013-08-29T12:50:21.987 回答
0

我不确定 VB,但这适用于 C#。

@{if (true) { int x; }}
于 2013-08-29T16:53:51.423 回答