我有以下内容,但失败了NullReferenceException
:
<td>@item.FundPerformance.Where(xx => fund.Id == xx.Id).FirstOrDefault().OneMonth ?? -</td>
OneMonth
定义为
public virtual decimal? OneMonth { get; set; }
失败时其值为 null。
我认为 Null Coalesce 运算符会测试其是否为 null,如果是,则将值返回到运算符右侧?
我需要改变什么才能使这项工作正常进行?
正如您所写的,剃刀语法以“OneMonth”结尾。这 ??被解释为文本。要将其解释为 razor,您必须将整个语句包装在 () 中,如下所示:
<td>@(item.FundPerformance.Where(xx => fund.Id == xx.Id).FirstOrDefault().OneMonth ?? "-")</td>
这仍然会导致错误:左边的运算符是小数,右边的运算符是字符串。因此,您可以渲染零而不是“-”,或者使用三元运算符,将 OneMonth.Value.ToString() 作为左值,将“-”作为右值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)