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

CSHTML使用变量设置标签多class类名渲染异常如何解决?

问题原因

Razor视图引擎的属性解析逻辑默认会按空格拆分未用引号包裹的属性值。你拼接的属性字符串为class=collapse multi-collapse,没有给属性值加引号,Razor解析时遇到空格就会将后面的multi-collapse识别为独立的空值属性,最终渲染为你遇到的错误结构。

解决方案

这里提供3种常用的正确写法,都可以输出预期的渲染结果:

  • 方案1:直接绑定class属性值(最推荐)
    不要自行拼接完整的属性字符串,直接把类名字段绑定到class属性的值位置,Razor会自动处理引号和空格:
var st = "collapse multi-collapse";
<tr class="@st">
  • 方案2:拼接属性时主动加引号
    如果确实需要动态生成完整的属性串,拼接时给属性值加上转义双引号即可:
var st = "collapse multi-collapse";
var style = $"class=\"{st}\"";
<tr @style>
  • 方案3:条件类名直接内联拼接
    如果需要根据判断条件动态增减类名,直接在class属性内写内联逻辑即可,无需提前拼接变量:
<tr class="collapse @(needMultiCollapse ? "multi-collapse" : string.Empty)">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:15:03