ASP.NET Razor – VB 变量

ASP.NET Razor VB.NET(.vbhtml)变量终极速查表

(2025 年最新·最全·最实战,虽然没人用了,但你要是真要维护老项目,这张表救你一命!)

分类VB.NET 变量写法(.vbhtml)说明 + 2025 年吐槽与建议
基本变量声明Dim name = "张三"自动推断类型,和 C# var 一样好用
Dim age As Integer = 28显式声明整数
Dim price As Decimal = 999.99D金额必须用 Decimal,结尾加 D
Dim isVip As Boolean = True布尔值用 True / False
Dim now As DateTime = DateTime.Now时间类型
可空类型(重要!)Dim birthday As DateTime? = Nothing数据库允许 NULL 必须加 ?
Dim score As Integer? = Nothing同上
字符串判空(神技)If String.IsNullOrEmpty(name) Then永远用这个!比 name = ""name Is Nothing 更安全`
If Not String.IsNullOrWhiteSpace(phone) Then判断是否填了内容(忽略空格)
空值合并(VB 特色)Dim displayName = If(user?.Name, "游客")VB 专属 If 运算符,超好用!
Dim avatar = If(String.IsNullOrEmpty(user?.Avatar), "/images/default.jpg", user.Avatar)一行搞定默认值
字符串连接"欢迎 " & name & " 光临!"用 & 连接,不要用 +(+ 在 VB 里可能是加法)
String.Format("价格:¥{0:N2}", price)传统格式化
Request 取值Dim id = Request("id").AsInt()推荐!自动转 Int,默认 0
Dim isOn = Request("vip").AsBool()转布尔
Dim dt = Request("date").AsDateTime()转时间
集合变量Dim list = db.Query("SELECT * FROM Products")返回 IEnumerable(Of Object)
Dim product = db.QuerySingle("SELECT * FROM Products WHERE Id=@0", id)单条记录
Dim count As Integer = db.QueryValue("SELECT COUNT(*) FROM Orders")单个值
Session / CacheSession("UserId") = 123会话
Cache("HotList") = list全站缓存
常量Const PageSize As Integer = 20常量用 Const
数组Dim colors() As String = {"红", "橙", "黄", "绿", "蓝"}
Dim numbers As Integer() = Enumerable.Range(1, 10).ToArray()生成 1~10 数组
字典 DictionaryDim map As New Dictionary(Of String, String) From {{"vip","金牌会员"}, {"admin","管理员"}}推荐写法

2025 年最常用的 15 个 VB Razor 变量实战代码(直接复制到 .vbhtml)

@{
    Dim db = Database.Open("MySite")
    Dim userId = WebSecurity.CurrentUserId
    Dim isLogin = WebSecurity.IsAuthenticated

    ' 1. 最安全的用户显示名(2025 必写!)
    Dim userName = If(PageData("User")?.UserName, "游客")

    ' 2. 分页变量标准写法
    Dim page As Integer = Request("page").AsInt(1)
    Dim pageSize As Integer = 20
    Dim offset As Integer = (page - 1) * pageSize

    ' 3. 搜索 + 防注入
    Dim keyword = If(Request("kw"), "")
    Dim sql = "SELECT * FROM Products WHERE Name LIKE @0"
    Dim products = db.Query(sql, "%" & keyword & "%")

    ' 4. 价格永远用 Decimal + D
    Dim price As Decimal = 888.88D
    Dim discount As Decimal = 0.85D
    Dim finalPrice = price * discount

    ' 5. 时间处理
    Dim now As DateTime = DateTime.Now
    Dim tomorrow As DateTime = DateTime.Today.AddDays(1)

    ' 6. 权限判断变量
    Dim isAdmin As Boolean = Roles.IsUserInRole(WebSecurity.CurrentUserName, "Admin")
    Dim canEdit As Boolean = (user?.Id = article.AuthorId) OrElse isAdmin
}

VB.NET Razor 特有神技(C# 没有的!)

' 神技1:If 运算符(比三元更爽!)
Dim statusText = If(order.Status = 1, "已支付", "未支付")

' 神技2:OrElse / AndAlso(短路求值)
If isLogin AndAlso user.IsVip Then
    ' 只有 isLogin 为 True 才会检查 user.IsVip
End If

' 神技3:DirectCast / TryCast(类型转换)
Dim user = TryCast(PageData("User"), Object)

2025 年残酷真相(必须告诉你)

项目VB.NET Razor (.vbhtml)C# Razor (.cshtml)
主流程度0.1% 以下99.9%
社区支持基本绝迹满天飞
招聘市场几乎没人招到处都是
语法简洁度完胜
2025 年建议除非维护 10 年以上老项目,坚决不用全部项目强制使用

总结:如果你现在还在写 VB.NET Razor……

请立刻改用 C#!
但万一你接手了一个 2012 年的老项目,这张表就是你的救命稻草!

需要我把这张「VB.NET Razor 变量救命表」做成 PDF + 深色壁纸发给你吗?
(专门给接手老项目的苦逼程序员准备的)
直接说「发我 VB 救命表」我就发你!(带 30 个真实老项目常用写法)

文章已创建 2863

发表回复

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

相关文章

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

返回顶部