You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET C#中如何在Index.cshtml内不使用JS根据ViewModel属性隐藏div

你的实现思路是可行的,但现有代码存在Razor语法拼接错误,style属性的引号配对、表达式输出逻辑都不正确,导致样式无法生效。

两种无JS的实现方案如下:

方案1:动态拼接style属性(元素保留在DOM中,仅隐藏)

如果需要保留该div在页面DOM结构中,仅做视觉隐藏,使用如下写法:

<div class="form-group spaced" style="@(Model.HasPackType ? "display: none;" : string.Empty)">
</div>

通过三元运算符判断属性值,当HasPackType为true时输出隐藏样式,否则输出空字符串不影响原有样式。

方案2:条件渲染元素(元素不输出到DOM)

如果该div在HasPackType为true时完全不需要用到,可以直接用Razor条件判断控制是否渲染整个元素,性能更优:

@if (!Model.HasPackType)
{
    <div class="form-group spaced">
    </div>
}

这种写法下,当HasPackType为true时,整个div不会生成到页面源码中。


内容的提问来源于stack exchange,提问作者Lidprogsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 23:15:04