使用Html.DropdownList助手添加类时触发Expression Expected错误
解决VB.NET Razor中DropdownList的HTML属性错误
嘿,这个VB Razor里的坑我之前也踩过!一眼就看出问题在哪了😉
为啥会报错?
你写的New With {@class = "form-control"} 犯了两个VB语法的小错误:
- VB的匿名类型成员必须用
.前缀来声明,你直接写@class,Razor引擎会把这个@当成要解析的代码表达式,编译器就懵了,抛出「Expression Expected」的错误。 class是VB的保留关键字,直接拿它当匿名类型的成员名会触发语法冲突,得用@来转义,但这个@得放在.后面才行。
正确的写法
把匿名类型的成员改成.@class,完美解决两个问题:
@Html.DropDownList("surveyStatus", "All", New With {.@class = "form-control"})
另一种可选写法
要是你觉得.@class看着有点怪,也可以用VB的索引器语法来指定属性名,这样不用处理关键字转义:
@Html.DropDownList("surveyStatus", "All", New With {.["class"] = "form-control"})
两种写法都能让下拉菜单正确带上Bootstrap的form-control类,搞定你的错误提示~
内容的提问来源于stack exchange,提问作者DannyJames
相关产品推荐
相关产品推荐

