0
votes

Renvoyer la valeur nulle de la liste de sélection peuplée avec DB Data

Je suis implémentant le projet ASP.NET CORE MVC. Dans ma classe de contrôleur appelée apiappplicant, créez une méthode, j'ai 3 sélectionneurs que ses articles doivent être remplis d'une table appelée apiappplicanthistory. Mes modèles et mes modèles et mes méthodes de création sont implémentés comme suit: xxx

et une partie de la mise en oeuvre de la vue: xxx

dans la méthode de création, Toutes les visionneuses sont remplies avec les données correspondantes correctes, mais le problème est existant dans la vue Create, après avoir exécuté le projet, une erreur comme ci-dessous est affichée dans Créer une page:

Une exception non gérée s'est produite lors du traitement de la demande. NullReferenceException: référence d'objet non définie à une instance d'un objet.

Après avoir débogué le code Je comprends que dans la vue Créer une vue, Apiappplicantvm n'est pas null, mais ApiappplicantHistoryVM renvoie Null et l'erreur ci-dessus est à cause de cela. J'apprécie si quelqu'un pouvait me dire comment résoudre le problème.


6 commentaires

Pourriez-vous s'il vous plaît ajouter votre OnModelCreatier de dbcontext?


_Context.entitytype.where (g => g.entitykey == "SentresponseType") .include (x => x.apiapappe plicantoryLaste qstatusnavigation) .t olist () ou sur votre Modal CreartingCreatining PROTECTION PROTECTION NOID ONCONFIGUMINGINGING (DBCONTEXTEXTOPTIONSBUILDER OPTIONSBUILDER) => OptionsBuilder .USELAZYLODINGPROXIES () .TUNUZLSERVER (MYCONNECTIONSRING); Pour plus d'informations Docs.Microsoft.com/en-us/ef/core/Querying/Related-Data


Vous n'avez pas utilisé votre viewModel déclaré dans la vue


Merci pour votre réponse. Pourriez-vous s'il vous plaît expliquer votre réponse plus clairement?


pouvez-vous essayer var-ent = _context.entitytype.where (g => g.entitykey == "sentresponseypeytype") .include (x => x.apiappplicantorylastraqstatusnavigation). Pour liste () dans votre Créez une méthode et vérifiez respectée pour cela?


J'ai ajouté Var End = _Context.Entytype.where (g => g.entitykey == "SentresponseType"). Inclure (x => x.apiapapplicantorylastraqstatusnavigation) .tolist (); Dans ma méthode de création dans le contrôleur et à la vue, j'ai écrit

<étiquette ASP-FOR = "APIAPPLICANTYPORYVM.SENTRASEUPONTYPE" Classe = "Libellé"> Après avoir exécuté le projet et dans la page Créer, je vois un champ "SentresponsonType" mais ce n'est pas t rempli de données connexes


3 Réponses :


0
votes

J'espère que vous utiliseriez Core EF comme or, car vous utilisez asp.net core .

Pour charger des données associées dans EF Core .

Il peut être fait de 2 façons ou chargement paresseux

chargement impatient

_Context.entitytype.where (g => g.entitykey == "SENTRESPONSETYPE") .Clueut (x => x.apiapappplicantorylaserqstatusnavigation) .toliste ()

ou

chargement paresseux sur votre création modale

substitut de substitution ONCONFIGUMINGING (DBContextOptionSBuilder OptionsBuilder) => OptionsBuilder .USELAZYLODINGPROXIES () .Utilisez-laqlserver (myConnectionstring);

ou

sur startup.cs de votre projet CORE MVC Exemple de chargement paresseux.

.adddbcontext ( B => B.USELAZYLODINGPROXIES () .Utilisez-laqlserver (myConnectionsTRING));

Pour plus d'informations docs.microsoft.com/en-us/ef/core/Query/Related-Data

https://docs.microsoft.com/fr -us / ef / noyau / interrogation / données associées


0 commentaires

0
votes

Merci beaucoup pour les réponses. J'utilise EF Core et j'ai changé mon code comme ce que vous avez suggéré. J'ai ajouté viewdata ["SentresponseType"] = nouvelle liste de sélection (_Context.entitytype.where (g => g.entitykey == "SentresponseType") .Clueut (x => x.apiappplicantorylastraqstatusnavigation) .tolist (), "id", "nom");

dans ma méthode de création.

Et mon problème est ici dans la vue Create View, dans la ligne ci-dessous, il existe une valeur nulle dans ApiappplicantHistoryVM:


0 commentaires

0
votes

Merci pour l'aide. Le problème était ici dans mon code ViewData ["SentresponsetypeyType"] = nouvelle liste de sélection (_Context.entitytype.where (g => g.entitykey == "Sentreponsetype"). Tolist (), "ID", "Nom");

Je devrais utiliser ID au lieu de ID selon mon modèle d'entitéType.


0 commentaires