2017-02-13 35 views
-2

我正在將模型值獲取到控制器中的某個操作,並試圖通過將該值設置爲另一個對象將值傳遞給另一個類中的另一個函數。在調用第二個函數的行中,該對象拋出空異常。它不會在if條件檢查中顯示null。 請在下面找到下面的代碼。MVC模型中的空異常

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-doi-i-fix -it) –

+1

調試你的代碼。我們不能爲你做。你甚至沒有顯示你初始化'_searchVisitor'(它可能是'null')。如果不是,那麼你的'SearchForVisitors()'方法會拋出錯誤 –

回答

0

我猜你得到空異常,當你想你的模型映射。你在使用AutoMapper嗎?什麼是_mapper?如果使用AutoMapper,那麼如果使用了任何自定義(之前,之後)映射,則可能需要檢查一次映射配置文件代碼。

休息因爲每個人都有建議,調試代碼和狀態更清楚其中probles是,你已經嘗試過,給你的類型的明確定義和環境

0

感謝斯蒂芬和Jinish你的投入。 我設法解決了這個問題。 麻煩在於使用映射器和服務參數初始化控制器。在代碼中佔用了默認的無參數構造函數,因此映射器和服務對象沒有被初始化。正確實施接口和映射配置文件解決了這個問題。