在代码行中:
<div class="col-md-11 bky-points-summary-body-content">
@Html.Raw(model.GetRawValue("body").ToString().Replace("[XXX]", (200 - ViewBag.CurrentBalance).ToString()))
</div>
我遇到了例外情况:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:'无法执行 空引用上的运行时绑定”
我试图通过更改对ViewBag的引用的位置等方式来对代码进行一些重新排列,但似乎无济于事。
答案 0 :(得分:2)
RuntimeBinderException
通常在ViewBag
属性为空值时发生,在这种情况下,ViewBag.CurrentBalance
为空值(并且您不能将空值与空值相减)。
当ViewBag.CurrentBalance
为null时,尝试对ViewBag.CurrentBalance
使用空合并运算符(默认值),或通过控制器操作对其进行分配:
@Html.Raw(model.GetRawValue("body").ToString().Replace("[XXX]",
(200 - (ViewBag.CurrentBalance ?? 0)).ToString()))
请注意,空值促销算子(??
)的operator precendence低于减法运算符(-
),因此您应在空值促销算子周围使用括号/方括号,以获得更高的优先级