2017-02-13 5 views
-2

コントローラのアクションにモデル値を渡して、別のクラスに別のオブジェクトを設定して別のクラスの別の関数に値を渡そうとしています。第2の関数を呼び出す行では、オブジェクトはヌル例外をスローします。 if条件チェックでもnullが表示されません。 以下のコードを見つけてください。MVCモデルでNull例外が発生しました

public ActionResult SearchBySecurity(SearchViewModel srchModel) 
    { 
     var searchDTO = new VisitorSearchDTO(); 
     //_mapper.Map<SearchViewModel, VisitorSearchDTO>(srchModel,searchDTO); 
     searchDTO.VisitorFirstName = srchModel.VisitorFirstName; 
     searchDTO.VisitorContactNumber = srchModel.VisitorContactNumber; 
     searchDTO.VisitorCompany = srchModel.VisitorCompany; 
     searchDTO.VisitDate = srchModel.VisitDate; 
     if (searchDTO != null) 
     { 
      var searchResultsDTO = _searchVisitor.SearchForVisitors(searchDTO); 
     } 
     ModelState.Clear(); 
     return View("SearchBySecurity",srchModel); 
+0

[NullReferenceExceptionとは何か、それを修正するにはどうすればいいですか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) –

+1

コードをデバッグします。私たちはあなたのためにそれをすることはできません。あなたは '_searchVisitor'をどこで初期化するかを表示していません(' null'かもしれません)。そして、そうでなければ、あなたの 'SearchForVisitors()'メソッドはエラーをスローしています –

答えて

0

モデルをマップしようとしているときにnull例外が発生していると思います。 AutoMapperを使用していますか? _mapperとは何ですか? AutoMapperの場合は、カスタム(前後の)マッピングを使用していれば、マッピングプロファイルコードを1回確認する価値があります。皆として

残りはあなたがしようとしたあなたの入力のための明確な、あなたの種類の定義と環境

0

おかげスティーブンとJinishを与えてきたものを、より明確にproblesであり、デバッグ、コードと状態を示唆しています。 私はこの問題を解決することができました。 マッパーとサービスパラメータでコントローラを初期化する際に問題が発生しました。デフォルトのパラメータなしのコンストラクタがコード内で使用されたため、マッパーとサービスオブジェクトは初期化されませんでした。インターフェイスとマッピングプロファイルの適切な実装によってこれを解決しました。

関連する問題