You need to enable JavaScript to run this app. ASP.NET MVC视图添加if判断区分聊天消息显示样式报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC视图添加if判断区分聊天消息显示样式报错如何解决

错误原因

  • 数据库direction字段为BIT类型,Entity Framework会自动映射为C#的bool/bool?(可空布尔)类型,不能直接和整数0做相等判断
  • 代码已经处在@foreach的Razor代码块范围内,if前不需要额外加@符号
  • direction字段在表结构中允许为NULL,直接判断可能触发空引用相关报错
  • 原代码else分支没有加花括号包裹代码块,Razor语法解析会出错

修正方案

SQL Server的BIT类型取值0对应C#布尔值false,取值1对应true,按如下规则修改代码即可:

@foreach (var item in Model)
{
    // 若direction为不可空bool类型用这个判断
    if (item.direction == false) 
    {
        <div class="messages__item message-student">
            @Html.DisplayFor(modelItem => item.text)
        </div>
    }
    else
    {
        <div class="messages__item message-services">
            @Html.DisplayFor(modelItem => item.text)
        </div>
    }
}

如果EF生成的模型中direction是可空bool?类型,兼容空值的写法如下(示例中空值默认按员工端展示,可按需调整):

@foreach (var item in Model)
{
    if (item.direction.GetValueOrDefault() == false) 
    {
        <div class="messages__item message-student">
            @Html.DisplayFor(modelItem => item.text)
        </div>
    }
    else
    {
        <div class="messages__item message-services">
            @Html.DisplayFor(modelItem => item.text)
        </div>
    }
}

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

相关产品推荐
方舟 Agent Plan

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

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