MVC代码

时间:2018-10-23 20:06:27

标签: c# asp.net asp.net-mvc-4

在代码行中:

<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的引用的位置等方式来对代码进行一些重新排列,但似乎无济于事。

1 个答案:

答案 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低于减法运算符(-),因此您应在空值促销算子周围使用括号/方括号,以获得更高的优先级