2017-02-13 1 views
-2

J'obtiens les valeurs du modèle dans une action du contrôleur et j'essaie de transmettre les valeurs à une autre fonction d'une autre classe en la définissant sur un autre objet. Dans la ligne d'invocation de la deuxième fonction, l'objet renvoie une exception nulle. Il ne montre pas null dans le contrôle de condition if non plus. Veuillez trouver le code ci-dessous.Exception nulle dans le modèle 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

Copie possible de [Qu'est-ce qu'une exception NullReferenceException, et comment la réparer?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) –

+1

Déboguez votre code. Nous ne pouvons pas le faire pour vous. Vous n'avez même pas montré où vous initialisez '_searchVisitor' (cela pourrait être' null'). Et si ce n'est pas le cas, votre méthode 'SearchForVisitors()' lance l'erreur –

Répondre

0

Je suppose que vous obtenez une exception nulle lorsque vous essayez de mapper vos modèles. Utilisez-vous AutoMapper? Qu'est-ce que _mapper? Si AutoMapper, il peut être utile de vérifier votre code de profil de mappage une fois si vous avez utilisé des mappages personnalisés (avant, après).

Reste que tout le monde a suggéré, déboguer votre code et état plus clairement où les probles est, ce que vous avez essayé et donner une définition claire de vos types et l'environnement

0

Merci Stephen et Jinish pour vos entrées. J'ai réussi à résoudre le problème. Le problème était lors de l'initialisation du contrôleur avec les paramètres de mappeur et de service. Le constructeur par défaut sans paramètre a été repris dans le code et par conséquent les objets mapper et service n'ont pas été initialisés. Résolu cela par une implémentation correcte des interfaces et des profils de mappage.