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

未使用ViewBag或dynamic,Razor Pages仍抛出RuntimeBinderException异常

Razor视图触发RuntimeBinderException异常的疑难问题

问题场景

渲染以下Razor(.cshtml)页面时:

@model AppItem

@{
    Debugger.Break();
}

@if (Model?.HideAds == true) 
{
    return; 
}

// ...

抛出异常:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: '无法将null转换为bool类型,因为它是不可为null的值类型'

异常疑点

  • 查阅资料得知该异常仅在涉及dynamic类型(如ViewBag)时出现,但当前代码未使用任何dynamic类型
  • 调试窗口中,Model及表达式Model?.HideAds == true的值均能正确计算
  • 异常并非来自if语句本身,仅在单步调试进入时触发

更新1

怀疑Model本身是dynamic类型,添加防护逻辑后仍抛出相同异常,且出现反常情况:Model为null时却进入了if语句

更新2

调试器逐行执行时所有值显示均正常,但异常的触发原因仍无法理解


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:29:51