J'ai deux tables. Un appelé "personnes" l'autre appelé "incidents"
dans la demande, ils ont tous deux des opérations de CRUD mis en œuvre. Ce que je veux faire, c'est afficher les deux tables à côté de l'autre en une seule vue. P>
Il y a deux contrôleurs. Un pour "personnes" l'autre pour "incidents". P>
La raison pour laquelle ils disposent tous deux des opérations de crud sont que j'ai besoin que l'utilisateur puisse créer des entrées de personne et des entrées incidentes séparément, mais avoir des deux affichages à synchroniser avec l'autre sur la même vue. J'ai essayé d'utiliser ViewModel pour cela, mais continuez à courir dans des erreurs. Par conséquent, pourquoi je demande maintenant de l'aide. P>
Le code modèle est le suivant: strong> p> Personnes Contexte FORT> P> public class ViewDetailController : Controller
{
public IActionResult Index()
{
return View();
}
}
3 Réponses :
Comme je l'ai vu le bloc de code, il n'y a pas de modèle de vue en vigueur avec le morceau de code où vous consommez la vue à afficher. Selon le bloc de code ci-dessus, nous avons deux modèles qui consomment sépraticy dans le contrôleur. P>
Veuillez partager le bloc de code de menuLodel. P>
La question que j'ai besoin de répondre est, comment puis-je combiner les deux modèles dans un modèle de vue. La raison en cours est à chaque fois que je l'ai essayée ne fonctionne pas. J'ai suivi de nombreux tutoriels en ligne, mais rien ne fonctionne. Une des parties que je me débats avec est avec la classe ViewModel. Liste toutes les {get; Ensemble} dans la classe des personnes et des incidents ou je l'énumère simplement comme "personnes de la classe publique des personnes {get; ensemble;} et incidents de classe publique incidents {get; ensemble;}"
C'est pourquoi j'ai demandé à Cher, peut montrer le bloc de code de ViewModel afin que je puisse vous donner le point où de cause le problème.
Mise à jour de la question avec la classe ViewModel
ViewdetailController est vide car je ne peux pas pour la vie de moi trouver le code pour la faire synchroniser les tables, puis les combiner dans une vue.
Utilisez ci-dessous du code de l'échantillon où nous pouvons combiner deux modèles en un modèle unique, puis revenir en vue, fondamentalement, ce concept de modèle de vue. P>
var utilisateurs = (de u in dbcontext.seekerAccountsjotT.SekerAccounts rejoignez OD dans dbcontext.userypes sur u.user_type_id égal à OD.Id_USertype où u.email.equals (_Ausername) && u.password.equaux (encodepassword) Sélectionnez Nouveau { U.City, U.contact_number, U.Current_Address, U.Date_of_Birth, U.Email, u.email_notification_active, u.full_name, u.gender, u.home_phone, u.id_seekerAccount, u.is_active, u.location, u.nationalité, u.password, u.registration_date, u.resumefilename, u.sms_notification_active, U.USER_TYPE_ID, OD.USER_TYPE, OD.User_Type_Name }). FirstArdefault (); userprofile.id = users.id_seekerAccount; userprofile.city = utilisateurs.city; userprofile.userType = users.user_type; userprofile.contact_number = users.contact_number; userprofile.current_address = utilisateur.current_address; userprofile.date_of_birth = utilisateurs.date_of_birth; userprofile.email = utilisateurs.Email; userprofile.email_notification_active = users.email_notification_active; userprofile.full_name = users.full_name; userprofile.gender = utilisateurs.gender; userprofile.home_phone = users.home_phone; userprofile.is_active = users.is_active; userprofile.location = utilisateurs.location; UserProfile.Nationalité = utilisateurs.Nationalité; userprofile.registration_date = users.registration_date; userprofile.Resumefilename = utilisateurs.resumefilename; userprofile.sms_notification_active = users.sms_notification_active; userprofile.user_type_id = utilisateurs.user_type_id; Session ["Userfile"] = userProfile; Si (utilisateurs! = null) {retourne vrai; } else {retourne faux; } p>
Ce que je veux faire, c'est afficher les deux tables à côté de l'autre dans un seul vue. p>
Peu importe comment ou ce que vous voulez faire la chose ultime est la présentant de manière meilleure. Je suppose que vous avez entendu parler de dtos et ou automapper . Créez une goutte pour contenir vos deux
personne code> etincident code>. Comme ceci p>xxx pré> , vous pouvez utiliser SOPULAPPER pour mapper la liste que vous avez récupérée à partir de la base de données de votre contrôleur ou le faire manuellement p>
xxx Pré> Alors à votre vue, vous pouvez maintenant obtenir des incidents et des personnes en une seule vue. P> blockQquote>
Merci. J'ai essayé d'utiliser le bloc de code que vous avez fourni pour le contrôleur, mais cela revient toujours avec des erreurs. Je pense que je ne manque tout simplement pas la connaissance des compétences pour que cela fonctionne. J'ai terminé certains cours Udemy en ce qui concerne ASP.NET MVC, mais aucun d'entre eux n'a été réellement touché sur ce genre de chose.