ASP.NET Razor – VB 逻辑条件

在 ASP.NET Razor 页面中使用 VB.NET 语法(即 .vbhtml 文件)时,逻辑条件的写法与 C# 有所不同。下面是常用的 VB.NET 在 Razor 中的逻辑条件写法汇总,包含完整语法示例:

1. 基本 If 条件

@If userIsLoggedIn Then
    <p>欢迎回来,@userName!</p>
ElseIf userRole = "Admin" Then
    <p>您是管理员</p>
Else
    <p>请登录</p>
End If

2. 多条件判断(And、Or、Not)

@If userAge >= 18 AndAlso userCountry = "China" Then
    <p>您已成年,可以访问该内容</p>
ElseIf userAge < 18 OrElse isBlocked Then
    <p>访问被拒绝</p>
End If

注意:VB.NET 推荐使用 AndAlso(短路与)和 OrElse(短路或),而不是 AndOr

3. Select Case(相当于 C# 的 switch)

@Select Case status
    Case 1
        <span class="badge badge-success">已完成</span>
    Case 2
        <span class="badge badge-warning">进行中</span>
    Case 3
        <span class="badge badge-danger">已取消</span>
    Case Else
        <span class="badge badge-secondary">未知</span>
End Select

4. 三元运算符(VB 中的 IIf 或 If 运算符)

VB.NET 有两种写法:

@* 传统 IIf(会计算所有参数,不推荐用于有副作用的情况)*@
<p>状态:@IIf(isActive, "在线", "离线")</p>

@* .NET 4.0+ 推荐使用 If 运算符(短路求值)*@
<p>状态:@(If(isActive, "在线", "离线"))</p>

5. 空值判断(Is Nothing、IsNot Nothing)

@If user IsNot Nothing AndAlso user.IsApproved Then
    <p>@user.Name 已通过审核</p>
Else
    <p>用户不存在或未审核</p>
End If

6. 字符串空判断(String.IsNullOrEmpty / String.IsNullOrWhiteSpace)

@If Not String.IsNullOrWhiteSpace(searchKeyword) Then
    <p>搜索关键词:@searchKeyword</p>
Else
    <p>请输入搜索内容</p>
End If

7. 在循环中使用条件(For Each + If)

@For Each item In Model.ProductList
    If item.IsDiscount Then
        @<div class="product discount">
            <s>@item.OriginalPrice</s> <strong>@item.Price</strong>(促销)
        </div>
    Else
        @<div class="product">
            <strong>@item.Price</strong>
        </div>
    End If
Next

8. 使用 CodeBlock 写复杂逻辑(推荐用于多行逻辑)

@Code
    Dim message As String = ""
    If DateTime.Now.Hour < 12 Then
        message = "上午好"
    ElseIf DateTime.Now.Hour < 18 Then
        message = "下午好"
    Else
        message = "晚上好"
    End If
End Code

<p>@message,欢迎访问!</p>

9. 一行条件渲染(@ 或直接输出)

@If showAds Then
    @<div class="ads">这里是广告位</div>
End If

@* 或者更简洁的写法 *@
@If Not isMobile Then : @<script src="~/js/desktop.js"></script> : End If

总结:VB Razor 常用条件关键字

用途VB.NET 语法
如果@If ... Then ... End If
否则如果ElseIf ... Then
否则Else
条件结束End If
短路与AndAlso
短路或OrElse
切换判断@Select Case ... End Select
三元运算符(推荐)If(condition, true部分, false部分)
判断 NothingIs Nothing / IsNot Nothing

只要记住以上语法,在 .vbhtml 文件中写逻辑条件就和写普通 VB.NET 一样自然了。

有具体场景需要写条件判断吗?可以贴代码,我帮你用 VB Razor 正确改写。

文章已创建 2965

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部