2017-02-13 2 views
-2

Я получаю значения модели для действия в контроллере и пытаюсь передать значения другой функции в другом классе, установив ее на другой объект. В строке вызова второй функции объект выдает исключение null. Он также не показывает значение null в условии 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-do-i-fix -it) –

+1

Отлаживайте свой код. Мы не можем сделать это за вас. Вы даже не указали, где вы инициализируете '_searchVisitor' (это может быть« null »). И если его нет, тогда ваш метод 'SearchForVisitors()' бросает ошибку –

ответ

0

Я предполагаю, что вы получаете пустое исключение, когда пытаетесь сопоставить свои модели. Вы используете AutoMapper? Что такое _mapper? Если AutoMapper, то, возможно, стоит проверить код профиля сопоставления один раз, если вы использовали какие-либо пользовательские (до, после) сопоставления.

Rest, как все предложил, отладочный код и состояние более ясно, где probles является то, что вы пытались и дать четкое определение ваших типов и окружающей среды

0

Благодаря Стивен и Jinish для входов. Мне удалось решить проблему. Проблема заключалась в инициализации контроллера параметрами карты и обслуживания. Конструктор конструктора без параметров был рассмотрен в коде, и, следовательно, объекты сопоставления и обслуживания не инициализировались. Решено это путем правильной реализации интерфейсов и профилей отображения.

Смежные вопросы