21

私は次のものを持っていますが、それは失敗していNullReferenceExceptionます:

<td>@item.FundPerformance.Where(xx => fund.Id == xx.Id).FirstOrDefault().OneMonth ?? -</td>

OneMonthと定義されている

public virtual decimal? OneMonth { get; set; }

失敗したときの値はnullです。

Null合体演算子はnullかどうかをテストし、nullの場合は、演算子の右側に値を返すと思いましたか?

これを機能させるには何を変更する必要がありますか?

4

2 に答える 2

1

MVC や Razor とは関係ありません。

FundPerformance.Where(xx => fund.Id == xx.Id).FirstOrDefault()

一致する要素がない場合は null を返します。null には OneMonth プロパティがないため、null ref 例外が発生します。?? は使用できません。null である OneMonth ではないため、演算子は の結果ですFirstOrDefault()

テストするには、コードを次のように変更します

FundPerformance.Where(xx => fund.Id == xx.Id).First().OneMonth ?? -</td>

代わりに「シーケンスに要素が含まれていません」という例外が発生した場合は、それが問題であることがわかります。

于 2011-12-09T10:50:24.790 に答える